using System.Xml.Serialization; namespace DTLib.Dtsod; [AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Interface)] public class DtsodSerializableAttribute : Attribute { public DtsodVersion Version; public DtsodSerializableAttribute(DtsodVersion ver) => Version = ver; } [AttributeUsage(AttributeTargets.Field | AttributeTargets.Property)] public class SerializeAsAttribute: Attribute { public string Key; /// /// use it only for base types /// /// name the field will be serialized as public SerializeAsAttribute(string key) => Key = key; } [AttributeUsage(AttributeTargets.Field | AttributeTargets.Property)] public class SerializationMethodAttribute : Attribute { public Func Method; /// /// /// how to serialize field public SerializationMethodAttribute(Func method) => Method = method; } [AttributeUsage(AttributeTargets.Field | AttributeTargets.Property)] public class DeserializationMethodAttribute : Attribute { public Func Method; /// /// /// how to deserialize field public DeserializationMethodAttribute( Func method) => Method = method; }