C# · 3月 1, 2022

c# – WCF,如何实例化DataContract中的所有对象? [OnDeserializing]不起作用

所以我有一些像这样的代码.

[DataContract]public class Example{ SomeClass _someVar; [OnDeserializing] public void OnDeserializing(StremingContext c) { _someVar = new SomeClass(); }}

这是有趣的事情,如果我使用Visual Studio 2010中的测试调试客户端,则调用OnDeserializing().但是如果我尝试托管我的WCF服务然后从我自己的客户端调用它,它就不会被调用(或者可能不会’t),因为_someVar总是为空.

哎呀!

我还需要做什么?

亲切的问候,
府谷

解决方法 WCF不使用标准的.net序列化,所以我不确定它会调用你的OnDeserializing方法.但是,您可以要求WCF使用XmlSerializer,它应该为您提供所需的行为.看看“控制序列化过程” here.