在.Net/C#中是为XmlSerializer.Serialize触发的OnSerializing事件

Chr*_*ton 5 .net c#

我想在序列化对象之前设置一些属性,但是因为它可以从多个位置序列化,有没有办法使用OnSerializing方法(或类似)进行Xml序列化 - 我的类很像这样 - 但是On ...方法没有被调用...:

[Serializable]
[XmlRoot(ElementName = "ResponseDetails", IsNullable = false)]
public class ResponseDetails
{
    public ResponseDetails() {}


    [OnSerializing]
    internal void OnSerializingMethod(StreamingContext context)
    {
        logger.Info("Serializing response");
    }

    [OnSerialized]
    internal void OnSerializedMethod(StreamingContext context)
    {
        logger.Info("Serialized response");
    }

    [OnDeserialized]
    internal void OnDeserializedMethod(StreamingContext context)
    {
        logger.Info("Deserialized response");
    }

    [OnDeserializing]
    internal void OnDeserializingMethod(StreamingContext context)
    {
        logger.Info("Deserializing response");
    }
Run Code Online (Sandbox Code Playgroud)

Ken*_*art 5

不,XmlSerializer不支持这个.如果您使用的是.NET 3.0或更高版本,请查看DataContractSerializer.