2
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;
}
在这里,我已经定义了类Ball中的私人领域Apple _apple。它给我MyApple的空值。但是,如果我将Apple _apple设置为公共字段,它将会给出“ramro apple”的值。有没有办法通过使用私人领域获得价值?我尝试牛逼我们如何使用序列化的私人领域?
我不认为这个问题已经完成'我试试....' –
这种行为是设计是不是?您正在尝试序列化只读字段。有关类似问题,请参阅http://stackoverflow.com/questions/5585364/force-xml-serialization-to-serialize-readonly-property。 – dash
@ m.edmondson也许与苹果和Ball的偶然交互可能会导致OP早关;-) – dash