我正在尝试从REST WCF服务返回通用ICollection。以下是否可能?
[ServiceContract]
public class WebConfigurationManager {
[WebGet]
[OperationContract]
public ICollection<string> GetStrings() {
return new string[] { "A", "B", "C" };
}
}
当我尝试从网络浏览器执行此操作时,出现错误。浏览我的WCF跟踪向我展示了这个:
无法序列化'System.String []'类型的参数(对于操作'GetStrings',合同'WebConfigurationManager'),因为它不是确切的类型'System.Collections.Generic.ICollection`1 [System.String]'在方法签名中并且不在已知类型集合中。要序列化参数,请使用ServiceKnownTypeAttribute将类型添加到操作的已知类型集合中。
答案 0 :(得分:2)
这应该有效:
[ServiceKnownType(typeof(string[]))]
[ServiceContract]
public class WebConfigurationManager {
[WebGet]
[OperationContract]
public ICollection<string> GetStrings() {
return new string[] { "A", "B", "C" };
}
}
答案 1 :(得分:0)
[ServiceKnownType(typeof(string[]))]
在[ServiceContract]属性上方。