我在WCF中得到一个InvalidDataContract异常
本文关键字:一个 InvalidDataContract 异常 WCF 我在 | 更新日期: 2023-09-27 18:27:54
我将从现有DTO派生的新DTO添加到共享DTO程序集中,将新DTO作为KnownType
添加到服务实现中,并作为ServiceKnownType
添加到服务接口中。
然而,当我试图更新重用DTO程序集的客户端时,我会得到以下异常:
无法序列化类型"MyNewDerivedTypeDto"。请考虑使用DataContractAttribute属性标记它,并使用DataMemberAttribute属性标记所有要序列化的成员。
但是,我的DTO中没有应用了DataContract
属性,它可以与所有其他DTO一起使用。
当新的DTO类没有默认构造函数时,就会发生这种情况。默认WCF序列化程序使用的每个DTO都需要有一个默认构造函数。不幸的是,本案中的例外情况非常具有误导性。