自定义XML序列化仅适用于属性

时间:2018-06-29 17:55:50

标签: c# xml xmlserializer

是否只能在字段中使用自定义方法?我可以使用JsonConver做到这一点。我只需要创建由JsonConverter扩展的自定义类并覆盖方法JsonWriter,因此可以在我的属性中用自定义类进行标记。

使用Json的示例:

public class CustomSerializer: JsonConverter
{
   public int Value {get; set;}

   public CustomSerializer(int value){               
      Value = value;
   }

   public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
   {
      // here my custom deserializer and i can use my prop Value
   }

   public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
   {
      // Here my custom serializer and i can use my prop Value           
   }
}

在使用JsonConverter的模型中,我可以这样做:

public class Person
{
    [JsonConverter(typeof(CustomSerializer))]
    public String Name{ get; set; }    
}

因此,当使用JsonConvert对对象进行序列化或反序列化时,只有修饰的字段将接受自定义处理。

在搜索中,我找到了可以扩展的IXmlSerializer,但不适用于原始值。

0 个答案:

没有答案