我正在尝试从REST服务返回一个通用ICollection。以下是否有可能呢?
[ServiceContract]
public class WebConfigurationManager {
[WebGet]
[OperationContract]
public ICollection<string> GetStrings() {
return new string[] { "A", "B", "C" };
}
}当我试图从我的网页浏览器执行这个操作时,我会得到一个错误。查看我的WCF跟踪显示如下:
'System.Collections.Generic.ICollection`1System.String‘不能序列化'System.String[]’类型的参数(对于操作'GetStrings',收缩'WebConfigurationManager'),因为它不是方法签名中的确切类型System.String[],也不是已知类型集合中的参数。为了序列化参数,请使用ServiceKnownTypeAttribute.将该类型添加到操作的已知类型集合中。
发布于 2009-07-16 20:02:44
这应该是可行的:
[ServiceKnownType(typeof(string[]))]
[ServiceContract]
public class WebConfigurationManager {
[WebGet]
[OperationContract]
public ICollection<string> GetStrings() {
return new string[] { "A", "B", "C" };
}
}发布于 2009-07-16 20:03:18
安德鲁给我指明了正确的方向。答案是添加
[ServiceKnownType(typeof(string[]))]在ServiceContract属性之上。
https://stackoverflow.com/questions/1139834
复制相似问题