日期:2014-05-18  浏览次数:20941 次

Why,Why, Why
为什么使用“启用了 Silverlight 的WCF 服务”时,在asp.net站点服务端写的“服务方法的返回类型”,到了客户端调用的时候就没有了,变为了“Void”类型???怎么回事???

asp.net站点“服务器端”:

[OperationContract]
  public List<Monitoring> GetMonitorDatasService(Monitoring.EnergyType energytype, KeyValuePair<Monitoring.Period, string> monitordate, KeyValuePair<Monitoring.MonitorType, string> monitortype, string meterusetype)
  {
  return GetMonitorDatas(energytype, energytype.ToString(), monitordate, monitortype, meterusetype);
  }

Silverlight客户端:

ChartsServiceClient.ChartsServiceClient serviceclient = new ChartsServiceClient.ChartsServiceClient();
  serviceclient.ChartsServiceInitializeOneAsync(issubstation);
  var datas = serviceclient.GetMonitorDatasServiceAsync(Monitoring.EnergyType.EM, monitordate, monitortype, meterusetype);

问题一:“服务端”定义的该方法的返回类型是“List<Monitoring>”,为什么到了客户端变为了“Void”???

错误提示:错误 78 无法将“void”赋予隐式类型的局部变量 C:\Users\Administrator\Desktop\GLLG(Preview2.0)\MyCharts\ElecMonitoring.xaml.cs 143 17 MyCharts



问题二:“客户端”好像给“服务端方法名”上加了一个“Async”,表示异步么?

问题三:使用“启用了 Silverlight 的WCF 服务”,在初始化客户端代理类的时候,是不是就可以不用指定“终结点”等“ABC”这些东西了?直接“new ChartsServiceClient.ChartsServiceClient()”初试化可以么?

------解决方案--------------------
问题二:“客户端”好像给“服务端方法名”上加了一个“Async”,表示异步么?
silverlight本身就是异步的。所以你那个基于silverlight的wcf服务自动生成的方法前加了个Asyn
------解决方案--------------------
问题三:使用“启用了 Silverlight 的WCF 服务”,在初始化客户端代理类的时候,是不是就可以不用指定“终结点”等“ABC”这些东西了?直接“new ChartsServiceClient.ChartsServiceClient()”初试化可以么?
在一个solution下的时候不指定终结点也可以调试的,以后发布了需要改。
------解决方案--------------------
可以考虑在silverlight版再发一个一样的帖子,那边的人silverlight应该比较专业,版主比较厉害。