我有一个很大的解决方案,其中包含许多序列化器/反序列化器 + 接口。我想减少文件数量,但保持代码的可测试性和可读性。我正在寻找一些序列化程序提供程序(不是工厂),例如:
interface ISerializable
{
string Serialize<T>(T obj);
T Deserialize<T>(string xml);
}
class Serializable : ISerializable
{
public string Serialize<T>(T obj)
{
return this.ToXml(obj);
}
public T Deserialize<T>(string xml)
{
throw new System.NotImplementedException();
}
}
internal static class Serializers
{
public static string ToXml(this Serializable s, int value)
{
}
public static string ToXml(this Serializable s, SomeType value)
{
}
}
在这种情况下,我需要添加一个新的扩展来序列化某些类型。但通用界面将保留:
ISerializable provider;
provider.Serialize<SomeType>(obj);