将IEnumerable <idictionary>通过WCF传递给Silverlight </idictionary>的问题

时间:2011-03-29 09:56:21

标签: c# silverlight wcf generics datagrid

我有一个WCF服务,我试图用它来生成IEnumerable<IDictionary>,然后从中构建一个网格。

返回数据的服务器上的方法签名是:

[OperationContract]
[FaultContract(typeof(GeneralServiceFault))]
IEnumerable<IDictionary> GetReport(string name, ReportingParameter[] parameters);

我正在构建我的服务参考:

call "C:\Program Files\Microsoft SDKs\Silverlight\v4.0\Tools\slsvcutil.exe" http://localhost:8082/Service?wsdl /mergeConfig /config:..\ServiceReferences.ClientConfig /edb /namespace:"*,namespace.Service" /r:"c:\Program Files\Microsoft Silverlight\4.0.60129.0\System.Windows.dll"

这会生成一个服务引用,归结为:

 public Dictionary<object, object>[] EndGetReport(IAsyncResult result)

无论如何我可以用通用IDictionary生成这个,所以我可以调用here找到的扩展方法吗?或者如果不是我应该怎么做呢?

2 个答案:

答案 0 :(得分:0)

我认为这不可能...... 只需将该扩展方法更改为:

public static IEnumerable ToDataSource<TDictionary>(
          this IEnumerable<TDictionary> list) where TDictionary : IDictionary

答案 1 :(得分:0)

如果您正在使用/有权访问Visual Studio,请尝试以下操作:

  • 在Visual Studio解决方案资源管理器

  • 中右键单击服务的服务引用
  • 选择“配置服务参考”

  • 的选项
  • 确保指定的集合类型为System.Collections.Generic.List

  • 确保指定的词典集合类型为System.Collections.Generic.Dictionary

道歉,但我不熟悉svcutil的命令行参考,用于生成默认配置以外的任何内容。