2
我使用“XSD.exe/c”命令行从XSD生成类。生成了部分类,因此我通过添加具有相同名称的类来“完成”它们,这使我可以添加其他属性。但是,无论何时将数据序列化回XML文件,都会包含这些属性的值。有谁知道如何防止这个,也许通过一个属性?从通过XSD.exe生成的类加载的数据序列化回XML时排除特定属性?
非常感谢,
尼克·希尔
我使用“XSD.exe/c”命令行从XSD生成类。生成了部分类,因此我通过添加具有相同名称的类来“完成”它们,这使我可以添加其他属性。但是,无论何时将数据序列化回XML文件,都会包含这些属性的值。有谁知道如何防止这个,也许通过一个属性?从通过XSD.exe生成的类加载的数据序列化回XML时排除特定属性?
非常感谢,
尼克·希尔
[XmlIgnore]
public string Foo {get;set;}
实际上(的完整性只),你可以也另外两个基于域名的方式做到这一点 - 你只是不会在这场景 - 它们被设计用于有条件地包括序列化期间的数据和(在第二个示例中)在“显式反序列化到默认”vs“不在反序列化源”之间的歧义:
public bool ShouldSerializeFoo() {return false;}
或
[XmlIgnore]
public bool FooSpecified { get { return false;} set {} }
的`ShouldSerializeFoo()`方法是特别好,因为它可以以不同的文件(自动生成的局部类的继续)放。这是我发现(有条件地)排除序列化属性的唯一方法。在xsd文件中的xs:元素上与`nillable =“true”配合使用。 – galmok 2012-07-05 13:07:13