序列化SHA1加密对象时出现DataContractSerializer错误

时间:2016-01-13 16:58:04

标签: c# web-services serialization sha1 datacontractserializer

我正在尝试使用SHA1加密许多第三方类对象。这些类对象正在从服务引用中使用,并且不受我的管理。虽然我可以查看和查看服务参考中的代码,但我无法对代码进行更改。

一个要求是在通过SOAP发送这些类对象之前计算它们的SHA1哈希值。为此,我目前正在使用http://alexmg.com/compute-any-hash-for-any-object-in-c/中的对象扩展。

但是,当我尝试使用DataContractSerializer方法中的computerHash<T>序列化其中一个类时,我收到以下错误。但是,我可以使用XmlSerializer将这个相同的类序列化为XML文档而不会有任何问题。

  

输入'[namespace]。[class]。[method]'与数据合约名称'[方法]:http://schemas.datacontract.org/2004/07/[namespace].[class]'不是预期的。考虑一个DataContractResolver,或者将已知静态类型的任何类型添加到已知类型列表中 - 例如,使用KnownTypeAttribute属性或将它们添加到传递给DataContractSerializer的已知类型列表中。

非常感谢任何有关使其发挥作用的指导。

1 个答案:

答案 0 :(得分:0)

我在几年前找到了this StackOverflow帖子,这导致我old blog post并尝试使用NetDataContractSerializer而不是{{1}从该博客实施解决方案1 }}。现在代码似乎没有抛出任何异常。

DataContractSerializer