我想编写一个自定义序列化程序,用于将会话状态存储到Azure 缓存(预览版)中,这意味着这个自定义序列化程序必须实现IDataCacheObjectSerializer
(如果我错了,请告诉我)。我需要编写这个自定义序列化程序的原因是我需要序列化一些包含一些System.Data.Linq.EntitySet
属性的 Linq 对象。并且默认的序列化NetDataContractSerializer
器无法序列化EntitySet
.
我的计划是通过使用编写自定义序列化程序DataContractSerializer
(我搜索了一些提到DataContractSerializer
可以序列化的文章EntitySet
,所以如果我错了,请告诉我),但问题是我如何编写可以支持泛型类型的自定义序列化程序。
目前,我的自定义序列化程序代码如下:
public class CustomSerializer : IDataCacheObjectSerializer
{
public CustomSerializer()
{ }
public object Deserialize(System.IO.Stream stream)
{
/* How can I know the type of object?????? */
DataContractSerializer dcs = new DataContractSerializer("Type of object");
}
public void Serialize(System.IO.Stream stream, object value)
{
DataContractSerializer dcs = new DataContractSerializer(value.GetType());
dcs.WriteObject(stream, value);
}
}
顺便说一句,我已将 Linq 序列化模式更改为“单向”