我有下面显示的类和结构.如果我使用xmlserializer序列化类,我得到:
<Test>
<TestNumber1> 5 </ TestNumber1>
<InnerTest />
</ Test>
什么是最简单的方法使InnerTest序列化正确(最好使用xmlserializer)而不给Number属性一个setter?
谢谢,尼克
public class Test
{
private InnerTest innerTest;
private int testNumber;
public Test()
{
this.innerTest = new InnerTest();
this.testNumber = 5;
}
public int TestNumber1
{
get { return this.testNumber; }
set { this.testNumber = value;}
}
public InnerTest InnerTest
{
get { return this.innerTest; }
set { this.innerTest = value;}
}
}
public struct InnerTest
{
private int number;
public InnerTest(int number)
{
this.number = number;
}
public int Number{get { return number; }}
}
Run Code Online (Sandbox Code Playgroud)
我自己从未这样做过,但我怀疑您只需要实现IXmlSerialized接口即可。
据我所知,这意味着你必须使你的结构可变 - 这是一个痛苦。理想情况下,XmlSerializer 应该识别您的类型是否具有具有特定签名的构造函数,但由于这似乎不是一个选项(据我所知),因此值得使用显式接口实现来实现该接口,以至少阻止用户自己直接使用它。
我想知道其他结构(例如 DateTime)如何管理...也许它们在 XmlSerializer 中有明确的支持。
| 归档时间: |
|
| 查看次数: |
6011 次 |
| 最近记录: |