title: ISerialization Constructor not getting called
body: <p>EDIT: The solution to my problem is to implement IXMLSerializer. Thanks everyone for the quick responses.</p>
  
  <p>Hi everyone, I'm having this issue and I do not seem to a find a proper solution to it.</p>
  
  <p>I have the following class</p>
  
  <pre><code>public class Child
          {
              private int _id;
  
              public int Id
              {
                  get { return _id; }
                  set { _id = value; }
              }
  
          }
          [Serializable]
          public class Test: ISerializable
          {
              private int _id;
  
              public int Id
              {
                  get { return _id; }
                  set { _id = value; }
              }
  
              private Child _child = new Child();
  
              public Child Child
              {
                  get { return _child; }
                  set { _child = value; }
              }
  
              public Test()
              {
              }
              protected Test(SerializationInfo info, StreamingContext context)
              {
                  if (info.MemberCount &gt; 1)
                      Child.Id = info.GetInt32("ChildId");
              }
  
  
              #region ISerializable Members
  
              public void GetObjectData(SerializationInfo info, StreamingContext context)
              {
                  info.AddValue("ChildId", Child.Id);
              }
  
              #endregion
          }
  </code></pre>
  
  <p>If I send the following XML to be deserialzed</p>
  
  <pre><code>&lt;?xml version="1.0" encoding="utf-16"?&gt;&lt;Test&gt;&lt;Id&gt;0&lt;/Id&gt;&lt;ChildId&gt;10&lt;/ChildId&gt;&lt;/Test&gt;
  </code></pre>
  
  <p>using the following code to deserialize</p>
  
  <pre><code>serializer.Deserialize(new StringReader("&lt;?xml version="1.0" encoding="utf-16"?&gt;&lt;Test&gt;&lt;Id&gt;0&lt;/Id&gt;&lt;ChildId&gt;10&lt;/ChildId&gt;&lt;/Test&gt;");
  </code></pre>
  
  <p>I supposed that would call my Serialization constructor, but the thing is that is never getting called.</p>
  
  <p>I am using the above posted XML instead of this one</p>
  
  <pre><code>&lt;?xml version="1.0" encoding="utf-16"?&gt;&lt;Test&gt;&lt;Id&gt;0&lt;/Id&gt;&lt;Child&gt;&lt;Id&gt;10&lt;/Id&gt;&lt;/Child&gt;&lt;/Test&gt;
  </code></pre>
  
  <p>Because I'm getting the xml posted from another application, so I need to manually created child objects and assigned its value manually from within the constructor.</p>
  
  <p>I'll really appreciate all the help and guidance you can provide me.</p>