首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WCF WebGet和ICollection<>

WCF WebGet和ICollection<>
EN

Stack Overflow用户
提问于 2009-07-16 19:38:00
回答 2查看 1.6K关注 0票数 2

我正在尝试从REST服务返回一个通用ICollection。以下是否有可能呢?

代码语言:javascript
复制
[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.将该类型添加到操作的已知类型集合中。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-07-16 20:02:44

这应该是可行的:

代码语言:javascript
复制
[ServiceKnownType(typeof(string[]))]
[ServiceContract]
public class WebConfigurationManager {
    [WebGet]
    [OperationContract]
    public ICollection<string> GetStrings() {
        return new string[] { "A", "B", "C" };
    }
}
票数 2
EN

Stack Overflow用户

发布于 2009-07-16 20:03:18

安德鲁给我指明了正确的方向。答案是添加

代码语言:javascript
复制
[ServiceKnownType(typeof(string[]))]

在ServiceContract属性之上。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1139834

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档