是否将KnownTypeAttribute应用于对象类型?

史蒂夫

我正在尝试使用WeatherBug API(WSDL在此处)。我正在尝试学习有关WCF的一些知识。

我使用svcutil.exe通过上面的链接从WSDL创建类。

然后,我尝试执行以下代码对其进行测试:

var proxy = new WeatherBugWebServicesSoapClient();
var stations = proxy.GetStationListByUSZipCode("97211", UnitType.English, "myapikey");

我最终得到了NetDispatcherFaultException

格式化程序尝试反序列化消息时引发异常:尝试反序列化参数http://api.wxbug.ne​​t/:GetStationListByUSZipCodeResponse时发生错误InnerException消息是“第1行的位置352错误。元素' http://api.wxbug.ne​​t/:anyType '包含映射到名称' http://api.wxbug.ne​​t/:ApiStationData的类型的数据'。解串器不知道任何映射到该名称的类型。考虑使用DataContractResolver或将与“ ApiStationData”相对应的类型添加到已知类型的列表中-例如,通过使用KnownTypeAttribute属性或将其添加到传递给DataContractSerializer的已知类型的列表中。有关更多详细信息,请参见InnerException。

看来我应该找回ArrayOfAnyType这样声明的类型的对象(由svcutil.exe生成):

[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
[System.Runtime.Serialization.CollectionDataContractAttribute(Name = "ArrayOfAnyType", Namespace = "http://api.wxbug.net/", ItemName = "anyType")]
public class ArrayOfAnyType : System.Collections.Generic.List<object> {
}

该数组看起来应该是的集合ApiStationData,其声明如下:

[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
[System.Runtime.Serialization.DataContractAttribute(Name = "ApiStationData", Namespace = "http://api.wxbug.net/")]
public partial class ApiStationData : object, System.Runtime.Serialization.IExtensibleDataObject {

从我在各种网页上阅读的内容来看,我认为我需要KnownTypeAttributeObject课程中添加a ,因为ArrayOfAnyTypea是List<object>我认为这是不可能的,但是(或正确的)...

提到异常也很奇怪http://api.wxbug.net/:anyType,但是anyTypesvcutil生成的代码中没有定义(这就是为什么我对进行假设的原因ArrayOfAnyType)。

有关如何解决此问题的任何建议?

洪扎·布雷斯坦(Honza Brestan)

KnownTypeAttribute用于数据约定而不是目标类型-由于许多原因,这实际上是不切实际的。此处查看“示例”部分中的应用程序。

从您的情况看来,数据合同不知道ApiStationData类型,因此将[KnownType(typeof (ApiStationData))]数据合同添加到数据合同中即可解决该问题。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将类型转换应用于列表:“ const”是否特殊?

来自分类Dev

将类型转换应用于列表:“ const”是否特殊?

来自分类Dev

将转换应用于对象

来自分类Dev

将转换应用于对象

来自分类Dev

由于将mapply应用于相似的函数,我如何获得相同的对象类型

来自分类Dev

无法将索引应用于表达式类型对象

来自分类Dev

Dapper.contrib 插入 - 无法将 [] 索引应用于“对象”类型的表达式

来自分类Dev

将const调用应用于原始类型时,是否可以提高性能?

来自分类Dev

如何使用Fluent断言断言是否将转换器应用于类型

来自分类Dev

是否需要反射将正确的通用适配器动态应用于我的对象

来自分类Dev

Python if 语句是否将 bool 隐式应用于条件中找到的对象?

来自分类Dev

是否可以将样式更改应用于对象的特定值?

来自分类Dev

是否可以将 python pandas 中的 groupby 应用于已经分组的对象?

来自分类Dev

制作新对象,不能应用于类型(int)

来自分类Dev

是否将可选类型名应用于概念?

来自分类Dev

在将“splitAt”应用于“List”之后,是否有任何简洁的方法可以将类型从“Int”转换为“Double”?

来自分类Dev

如何将休眠验证应用于字符类型?

来自分类Dev

将条件应用于结构并产生结构类型的列表

来自分类Dev

反思:将声明类的类型参数应用于字段

来自分类Dev

将累积均值函数应用于分组对象

来自分类Dev

将动态创建的lambda应用于对象实例

来自分类Dev

无法将DaoAuthenticationConfigurer应用于已构建的对象

来自分类Dev

NSPredicate将谓词应用于对象数组中的Object。

来自分类Dev

CSS:将overflow:hidden应用于同级对象

来自分类Dev

将函数应用于JavaScript数组中的每个对象

来自分类Dev

设计模式:将行为应用于不同家族的对象

来自分类Dev

重新将jquery应用于克隆的对象

来自分类Dev

jQuery-将方法应用于多个对象

来自分类Dev

将某些功能应用于多个对象

Related 相关文章

  1. 1

    将类型转换应用于列表:“ const”是否特殊?

  2. 2

    将类型转换应用于列表:“ const”是否特殊?

  3. 3

    将转换应用于对象

  4. 4

    将转换应用于对象

  5. 5

    由于将mapply应用于相似的函数,我如何获得相同的对象类型

  6. 6

    无法将索引应用于表达式类型对象

  7. 7

    Dapper.contrib 插入 - 无法将 [] 索引应用于“对象”类型的表达式

  8. 8

    将const调用应用于原始类型时,是否可以提高性能?

  9. 9

    如何使用Fluent断言断言是否将转换器应用于类型

  10. 10

    是否需要反射将正确的通用适配器动态应用于我的对象

  11. 11

    Python if 语句是否将 bool 隐式应用于条件中找到的对象?

  12. 12

    是否可以将样式更改应用于对象的特定值?

  13. 13

    是否可以将 python pandas 中的 groupby 应用于已经分组的对象?

  14. 14

    制作新对象,不能应用于类型(int)

  15. 15

    是否将可选类型名应用于概念?

  16. 16

    在将“splitAt”应用于“List”之后,是否有任何简洁的方法可以将类型从“Int”转换为“Double”?

  17. 17

    如何将休眠验证应用于字符类型?

  18. 18

    将条件应用于结构并产生结构类型的列表

  19. 19

    反思:将声明类的类型参数应用于字段

  20. 20

    将累积均值函数应用于分组对象

  21. 21

    将动态创建的lambda应用于对象实例

  22. 22

    无法将DaoAuthenticationConfigurer应用于已构建的对象

  23. 23

    NSPredicate将谓词应用于对象数组中的Object。

  24. 24

    CSS:将overflow:hidden应用于同级对象

  25. 25

    将函数应用于JavaScript数组中的每个对象

  26. 26

    设计模式:将行为应用于不同家族的对象

  27. 27

    重新将jquery应用于克隆的对象

  28. 28

    jQuery-将方法应用于多个对象

  29. 29

    将某些功能应用于多个对象

热门标签

归档