且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

如何编写使用的DataContractSerializer为泛型类型的自定义序列化?

更新时间:2023-02-12 10:29:51

我没跟IDataCacheObjectSerializer工作,但共同的解决办法是这样的:

I did not work with IDataCacheObjectSerializer, but common solution looks like this:

public sealed class CustomSerializer<T> : IDataCacheObjectSerializer
{
    object IDataCacheObjectSerializer.Deserialize(System.IO.Stream stream)
    {       
        DataContractSerializer dcs = new DataContractSerializer(typeof(T));
        return dcs.ReadObject(stream);
    }

    void IDataCacheObjectSerializer.Serialize(System.IO.Stream stream, object value)
    {
        if (!(value is T)) 
        {
            throw new AgrumentException();
        }
        DataContractSerializer dcs = new DataContractSerializer(typeof(T));
        dcs.WriteObject(stream, value);
    }
}