Default Constructors and Proxy Classes

Hi,

I have a question regarding default constructors and the way svcutil generates proxy. I‘m not sure if I’m thinking in the right way in exposing these classes as DTO’s. I greatly value your inputs,

With the same example given below

[DataContract]

public class MyClass

{

private List<Child> _children;

void MyClass

{

_children = new List<Child>();

}

[DataMember]

Public List<Child> Children

{

Get{return _children;}

set{_children = value;}

}

}

I’m trying to expose this class via a service agent. And for that I’m using svcutil to generate the DTO Classes. How can I ensure that the client when it tries to do the following does not get a null value

MyClass myInstance = new MyClass();

myInstance.Children.Add(new Child()); //Throws an exception as the Children is null

Am I doing the right thing in exposing these proxy class as DTO I greatly appreciate your response.

Thanks much,

Kumar



Answer this question

Default Constructors and Proxy Classes

  • Pat_ON

    The constructor will be called if you create the object normally. However, it will not run if the object is deserialized off the wire. If you need to have a default value in place during serialization/deserialization, you call use the Version Tolerant Attributes to do that.

    Please see this for further information:

    http://msdn2.microsoft.com/en-US/library/ms229752.aspx

    Hope that helps.

    Thanks!

    Scott



  • tcw

    I read it again.

    Maybe OnDeserializing Attribute can be used to solve it.

    I will try it later.

    Thanks again.



  • Sean Stapleton

    I have the same requirement.

    But from the reference link, I do not know in which way VTA will help.

    Can anyone explain it more clearly

    Thanks a lot.



  • Default Constructors and Proxy Classes