我正在使用Xml序列化来保存磁盘上的某些对象。
类结构如下:
XmlInclude(typeof(BranchExplorerViewInfo))
public class ViewInfo
{
...
}
public class BranchExplorerViewInfo : ViewInfo
{
...
}
public class CustomBranchExplorerViewInfo: BranchExplorerViewInfo
{
...
}
然后,我需要以下行为:
BranchExplorerViewInfo view = new BranchExplorerViewInfo();
view.GetType().IsSerializable; //I need this to be TRUE
CustomBranchExplorerViewInfo customView = new CustomBranchExplorerViewInfo();
customView.GetType().IsSerializable; //I need this to be FALSE
因此,我希望BranchExplorerViewInfo
可序列化,但CustomBranchExplorerViewInfo
不可序列化。是否有任何属性可以排除类型/类?
提前致谢。
答案 0 :(得分:2)
您混淆了两种完全不同类型的序列化。
一方面,您在讨论与{xml序列化相关的[XmlInclude]
。
另一方面,您正在测试Type.IsSerializable
,它与二进制序列化有关(即与[Serializable]
属性和BinaryFormatter
类相关)。
虽然这些都是序列化的类型,但它们是非常不同且不相关的。
我无法想到“IsXmlSerialization”的简单等效测试。