Deserialize to self

前端 未结 4 601
灰色年华
灰色年华 2021-01-11 18:08

Ok, I\'m probably just having an epic fail here, but my mind wants to say this should work.

Assume DataProtect.DecryptData takes an encrypted string as input and a d

4条回答
  •  情话喂你
    2021-01-11 18:38

    You can archive this with reflection as follows.

    var tmp = DataProtect.deserializeXML(DataProtect.DecryptData(encrypted));
    foreach (var property in GetType().GetProperties())
        if (property.GetCustomAttributes(typeof (XmlIgnoreAttribute), false).GetLength(0) == 0)
            property.SetValue(this, property.GetValue(tmp, null), null);
    

    This assigns the deserialized object to a temporal variable, and copy the value in each public property to this with reflection. This snippet avoids to copy properties with the XmlIgnore attribute.

提交回复
热议问题