【发布时间】:2012-10-03 11:54:18
【问题描述】:
我想编写一个自定义序列化程序,用于将会话状态存储到 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 序列化模式改成了“单向”
【问题讨论】:
标签: c# asp.net serialization azure