喜在运行我的WCF服务,它给我的错误,因为它使用System.Object类型[]不支持在WCF测试客户端这个操作
我尝试检索正在运行的进程列表中。
[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single) 类Windows_processes_Service:IWindows_processes_Service { ArrayList的RunningProcesses_Name =新的ArrayList(); 公众的ArrayList GetRunningProcesses() { 流程[] PROCESSLIST = Process.GetProcesses(); 的foreach(在PROCESSLIST过程nme_processes) { RunningProcesses_Name.Add(nme_processes.ProcessName.ToString()); } 返回RunningProcesses_Name; } }解决方案
既然你添加字符串( ProcessName.ToString() - 尽管的ToString()不需要为 ProcessName 已经是字符串)为您服务,你应该定义你的方法返回一个名单,其中,串> 而不是的ArrayList
这可以简化为:
[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single) 类Windows_processes_Service:IWindows_processes_Service { 公开名单<字符串> GetRunningProcesses() { 返回Process.GetProcesses()选择(P => p.ProcessName)。.ToList(); } }hi while running my wcf service it gives me error "this operation is not supported in the wcf test client because it uses type system.object[]"
i m trying to retrieve the running process list.
[ServiceBehavior(InstanceContextMode=InstanceContextMode.Single)] class Windows_processes_Service:IWindows_processes_Service { ArrayList RunningProcesses_Name = new ArrayList(); public ArrayList GetRunningProcesses() { Process[] processlist = Process.GetProcesses(); foreach (Process nme_processes in processlist) { RunningProcesses_Name.Add(nme_processes.ProcessName.ToString()); } return RunningProcesses_Name; } }解决方案
Since you're adding strings (ProcessName.ToString() - though ToString() is not required as ProcessName is already a string) to your service, you should define your method to return a List<string> instead of ArrayList.
This can be simplified to:
[ServiceBehavior(InstanceContextMode=InstanceContextMode.Single)] class Windows_processes_Service:IWindows_processes_Service { public List<string> GetRunningProcesses() { return Process.GetProcesses().Select(p => p.ProcessName).ToList(); } }
更多推荐
因为它使用System.Object类型,不支持在WCF测试客户端这个操作[]
发布评论