我们如何使用序列化的私有字段
本文关键字:字段 序列化 何使用 我们 | 更新日期: 2023-09-27 18:32:52
class Program
{
static void Main(string[] args)
{
var ball = new Ball();
ball.MyApple.Name = "ramro apple";
XmlSerializer ser = new XmlSerializer(typeof(Ball));
var sb = new StringBuilder();
var writer = new StringWriter(sb);
ser.Serialize(writer, ball);
XmlDocument doc = new XmlDocument();
doc.LoadXml(sb.ToString());
XmlNodeReader reader = new XmlNodeReader(doc.DocumentElement);
object meroBall = ser.Deserialize(reader);
Ball myBall = (Ball)meroBall;
}
}
public class Apple
{
public string Name
{
get;
set;
}
}
public class Ball
{
public Ball()
{
_apple = new Apple();
}
public Apple MyApple
{
get { return _apple; }
}
private Apple _apple;
}
在这里,我在类球中定义了私人领域苹果_apple。它给了我MyApple的空值。但是,如果我将苹果_apple设置为公共字段,它将给出值为"ramro apple"。有没有办法通过使用私有字段来获得该值?我尝试 t
这是因为
XmlSerializer 仅适用于同时具有公共获取和设置的成员... 如果您为 MyApple 提供公共设置器,它将起作用:
public class Ball
{
public Ball()
{
_apple = new Apple();
}
public Apple MyApple
{
get { return _apple; }
set { _apple = value; }
}
private Apple _apple;
}
当然,这也假设两个类,Ball 和 Apple,都有一个不带参数的公共构造函数。