C# 序列化不带类型标记的类型

C# 序列化不带类型标记的类型,c#,xml-serialization,C#,Xml Serialization,我是否有可能序列化一个对象而不需要添加它的实际根标记呢。这听起来有点奇怪,所以我附加了一些代码来解释我的意思: class Test { public MyClass M; } class MyClass { public int A; public int B; } 成员A和B现在不应序列化为M,而应序列化为根类Test,如下所示: <Test> <A>3</A> <B>4</B> </Tes

我是否有可能序列化一个对象而不需要添加它的实际根标记呢。这听起来有点奇怪,所以我附加了一些代码来解释我的意思:

class Test {
    public MyClass M;
}

class MyClass {
    public int A;
    public int B;
}
成员A和B现在不应序列化为M,而应序列化为根类
Test
,如下所示:

<Test>
  <A>3</A>
  <B>4</B>
</Test>

3.
4.

我需要这样做,因为我有许多空的伪类,它们只是从基类派生而来,但在我希望避免内部伪类型序列化的地方,根本不添加任何成员。这可能吗?

我认为使用XmlSerializer类不可能做到这一点。但您始终可以使用XmlReaderXmlWriter手动序列化和反序列化数据。

XmlSerializer
默认情况下不支持此行为。该类可以实现
IXmlSerializable
或从
XDocument
创建文档

见:

产出:

<Test>
  <A>1</A>
  <B>2</B>
</Test>

1.
2.

不确定你在问什么,但你的类和xml会序列化。我知道它会序列化,但不是我想要的方式。目前它将序列化为34,但我想将数据从MyClass推送到测试
<Test>
  <A>1</A>
  <B>2</B>
</Test>