我正在使用DataContract / DataMembers将我的类序列化为JSON以获取Web服务,除了我的一个成员,它可以是类a或类b,其中类b扩展类a,它一切正常
如果省略KnownType参数,则在序列化期间抛出异常:
Type 'ClassB' with data contract name 'ClassB:http://schemas.datacontract.org/2004/07/MyApp.App_Code' is not expected.
正如预期的那样,因为ClassB是A类的扩展,因此不知道deserialiser。所以我需要将一个已知的类型属性添加到包含成员
的父类中[KnownType(typeof(ClassB))] [DataContract]
这个编译很好,但我正在测试它的页面似乎变得很棒,它加载很好,但显然服务不再存在,因为我的JS调用告诉我并抛出错误。但我不知道为什么在我的类上添加已知的type属性会导致webservice显然不存在:s
这与我的设置是ClassA,ClassB:ClassA以及我见过的所有示例有关,似乎显示了ClassA:ParentClass,ClassB:ParentClass设置。
.NET 4,VWD 2010express
答案 0 :(得分:0)
是的,这是与类声明有关,你不能按照我试图的方式,在创建基类之后,让它们都继承它们,它工作正常