C# 如何使用XmlSerializer选择性地序列化字段和属性
问题是我有一个测试类和一个TestVariable,我想序列化测试类而不序列化TestVariable:C# 如何使用XmlSerializer选择性地序列化字段和属性,c#,serialization,C#,Serialization,问题是我有一个测试类和一个TestVariable,我想序列化测试类而不序列化TestVariable: public class TestClass { public int TestVariable { get; set; } public int ControlVariable { get; set; } public TestClass() {
public class TestClass
{
public int TestVariable
{
get;
set;
}
public int ControlVariable
{
get;
set;
}
public TestClass()
{
TestVariable = 1000;
ControlVariable = 9999;
}
}
执行序列化的代码:
public static void PrintClass()
{
new XmlSerializer(typeof(TestClass)).Serialize(Console.Out, new TestClass());
}
包括命名空间System.Xml.Serialization,并在要在序列化中排除的字段或属性上添加属性[XmlIgnore] 修改上述代码时,它将如下所示:
public class TestClass
{
[XmlIgnore]
public int TestVariable
{
get;
set;
}
public int ControlVariable
{
get;
set;
}
public TestClass()
{
TestVariable = 1000;
ControlVariable = 9999;
}
}
这将导致TestVariable完全从序列化中排除。我发现这种方法不灵活,因为它是在编译时定义的。IMHO,使用方法要灵活得多。我必须同意,它肯定是不灵活的,但有时您可能不需要序列化方法所提供的灵活性。在我的例子中,我有一个类,在编译时我知道我永远不需要序列化这些值。所以我选择了一个简单的解决方案来完成这项工作。我在搜索时找不到一个非常简单的解决方案,所以我把我的问题和发现发布出来,以便其他人可以从中受益。