Luk*_*kas 0 c# constructor static-methods
我尝试使用XDocument(XML Linq)来保存和加载类.为此,我有两种方法:
static MyClass FromXml(XElement data); //calls 0-parameter constructor inside
public XElement ToXml();
Run Code Online (Sandbox Code Playgroud)
像这样的构造函数
public MyClass(XElement data)
{
this = MyClass.FromXml(data);
}
Run Code Online (Sandbox Code Playgroud)
不起作用(说这是只读的).这可以以某种方式完成(没有创建从返回值手动复制每个字段)?
或者这个想法是错的?
将代码从FromXml构造函数移动应该可以工作,但是然后保存和加载将在两个地方或构造函数不会在一个地方...
我认为你需要这样的东西:
public class MyClass
{
public MyClass() {}
public MyClass(XElement data)
{
loadXml(this, data);
}
public static MyClass LoadXml(data)
{
var output = new MyClass();
loadXml(output, data);
return output;
}
private static void loadXml(MyClass classToInitialize, XElement data)
{
// your loading code goes here
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4276 次 |
| 最近记录: |