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