【问题标题】:NetDataContractSerialization throwing deserialization errorNetDataContractSerialization 引发反序列化错误
【发布时间】:2010-03-20 16:28:17
【问题描述】:

我有返回接口的方法和一些接受接口作为参数的方法。我正在尝试使用 Net DataContractSerializer,但出现以下错误...

格式化程序抛出异常,而 试图反序列化消息: 尝试执行时出错 反序列化参数 http://tempuri.org/:id。这 InnerException 消息是“错误 第 1 行位置 120. XML '元素' 'http://tempuri.org/:id' 没有 包含预期属性 'http://schemas.microsoft.com/2003/10/Serialization/:Type'。 解串器不知道 要反序列化的类型。检查 被序列化的类型具有相同的 合同作为类型 反序列化。请参见 InnerException 了解更多详情。

请帮我解决这个错误....

如果我在 Operation Contract 上使用 Netdatacontract 属性,我可以在可序列化类上使用 DataContract 和 Datamember 属性吗???

提前谢谢...

【问题讨论】:

    标签: wcf wcf-client


    【解决方案1】:

    只是猜测 - 错误似乎表明 NetDataContractSerializer 无法正确确定将您的内容反序列化为哪种类型。

    难道你没有为反序列化器指定http://tempuri.org XML 命名空间??

    另外,请问InnerException的内容可以吗?

    或者第二种选择:使用 NetDataContractSerializer,您还需要在服务器和客户端之间共享数据协定,以便客户端可以反序列化为与服务器端定义的完全相同的类型。也许你错过了这个要求??

    【讨论】:

    • 嗨...谢谢您的回复....我创建了 Datacontract 类作为单独的 .net 库,并添加了对客户端和服务器的引用以共享类型。并在那个地方使用我的项目命名空间来到命名空间。如果您对使用什么命名空间有任何想法,请告诉我。我的内部异常也与反序列化错误相同。下面是我用来启用 NetDcs 的代码。请让我知道这是否正确..
    • pluralsight-training.net/community/blogs/aaron/archive/2006/04/… 代码在上面的链接中...如果我必须对该代码进行任何更改以及配置文件所需的任何更改,请告诉我...提前致谢.. .
    猜你喜欢
    • 1970-01-01
    • 2014-02-19
    • 2012-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-07
    • 2014-03-13
    • 2020-11-08
    相关资源
    最近更新 更多