有没有办法知道对象是否是从 C# 中的 XML 文件反序列化的?如果我的对象被反序列化,我想要做的是对它进行后处理。是否有任何功能或属性提供?
问问题
449 次
1 回答
2
如果您的意思是“按XmlSerializer
”,那么:不,通常不是。
“序列化回调”的概念存在(预序列化,后序列化,预反序列化,后反序列化)并且我能想到的大多数序列化程序都很好理解和支持......除了 XmlSerializer
不支持它完全没有。您进入的主要拦截点XmlSerializer
是类型是否实现IXmlSerializable
,但如果您这样做,您需要自己完成所有工作,即:很难(加上您失去模式支持)。
您最好的选择是在调用Deserialize
. 如果您需要使其通用,那么也许将方法放在接口上,以便您的反序列化代码基本上可以:
var newObj = serializer.Deserialize(source);
var forCallback = newObj as ISerializationCallbacks; // <== you define this
if(forCallback != null) forCallback.AfterDeserialize();
return newObj;
于 2013-06-24T09:38:08.517 回答