【问题标题】:Adding KnownType attribute causes unknown error添加 KnownType 属性会导致未知错误
【发布时间】:2010-06-21 14:19:22
【问题描述】:

我正在使用 DataContract/DataMembers 将我的类序列化为 JSON 以用于 Web 服务,并且一切正常,除了我的一个成员,它可以是 a 类或 b 类,其中 b 类扩展了 a 类.

如果我省略 KnownType 参数,那么在序列化过程中会抛出异常:

不应使用数据合同名称为“ClassB:http://schemas.datacontract.org/2004/07/MyApp.App_Code”的类型“ClassB”。

正如预期的那样,因为 ClassB 是 Class A 的扩展,所以解串器不知道。所以我需要将一个已知的类型属性添加到包含该成员的父类中

[KnownType(typeof(ClassB))]
[数据合同]

这编译得很好,但是我目前正在测试它的页面似乎很奇怪,它加载得很好,但是显然服务不再存在,因为我的 JS 调用告诉我并抛出错误。但我不知道为什么在我的类上添加已知类型属性会导致 web 服务显然不存在:s

这是否与我的设置是 ClassA、ClassB: ClassA 以及我所看到的所有示例似乎都显示 ClassA: ParentClass、ClassB: ParentClass 设置有关。

.NET 4,VWD 2010express

【问题讨论】:

    标签: c# asp.net web-services serialization


    【解决方案1】:

    是的,它与类声明有关,你不能像我尝试的那样,在创建一个基类并让它们都继承它们之后,它工作得很好

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-29
      相关资源
      最近更新 更多