【问题标题】:Send a List<string> to a wcf service将 List<string> 发送到 wcf 服务
【发布时间】:2009-03-20 04:26:39
【问题描述】:

我试图到处寻找这个问题的答案,但没有运气..所以我向这里的专家寻求帮助!

我有一个 c# 中的 wcf 服务正在完全工作......它做了一些魔法并将一个列表发送到服务器。服务器可以很好地读取这些 PO 对象。但是,当 PO 内部有一个列表时,我现在遇到了问题......

public class PO
{
    /* omitted */
    [DataMember]
    public Object BasicContent { get; set; }
}

当 BasicContent 是一个列表时,我收到以下错误:

“尝试序列化参数 http://tempuri.org/:objectToPersist 时出错。InnerException 消息是 'Type 'System.String[]' 与数据协定名称 'ArrayOfstring:http://schemas.microsoft.com/2003/10/Serialization/Arrays' 不是预期的。添加任何已知类型列表中静态未知的类型 - 例如,通过使用 KnownTypeAttribute 属性或将它们添加到传递给 DataContractSerializer 的已知类型列表中。'。有关更多详细信息,请参阅 InnerException。"

我尝试在各处添加[ServiceKnownType(typeof(List&lt;string&gt;))] 或[ServiceKnownType(typeof(string[]))] 无济于事...

谁能帮我看看我能做什么?

【问题讨论】:

    标签: c# wcf


    【解决方案1】:

    您是否尝试过将类型更改为 String 或 String[] 或 List,具体取决于您的设置。

    【讨论】:

    • 试过了,似乎没有像在写入时那样工作我认为 string[] 和 list 都被处理为 ArrayOfString
    【解决方案2】:

    尝试为 String 添加 ServiceKnownType

    [ServiceKnownType(typeof(string))]
    

    【讨论】:

    • 我可以发送字符串——它们可以在“基本内容”位中工作
    猜你喜欢
    • 2014-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多