namespace DTLib.Dtsod.ClassSerializer;
[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;
}