【发布时间】:2011-07-25 03:39:52
【问题描述】:
我有一个 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?或者如果不是,我应该怎么做?
【问题讨论】:
-
您在字典中传输哪些类型? WCF 服务不知道它们,因此它不会在元数据中公开它们。因此,客户只期望
Dictionary<object, object> -
字典对象由 GetValue() 使用 DataReader 类填充。这可以返回 DataReader 类可以返回的任何指定的 clr 类型。它不返回任何我自己的类型。这些是否需要专门设置为已知类型?
标签: c# silverlight wcf generics datagrid