Я новичок в сериализации XML, и я прочитал, что переменные private
не могут быть сериализованы, пока они не будут переданы в открытом доступе.Но во время отладки после десериализации я могу найти частные переменные также в десериализованном объекте.Может кто-нибудь объяснить это?Вот мой код:
class Program
{
static void Main(string[] args)
{
XmlSerializer xs = new XmlSerializer(typeof(Nokia));
Nokia n = new Nokia();
using (Stream s = new FileStream("XMLFile", FileMode.Create, FileAccess.Write, FileShare.None))
{
xs.Serialize(s, n);
}
XmlSerializer xs1 = new XmlSerializer(typeof(Nokia));
using (Stream ds = File.OpenRead("XMLFile"))
{
Nokia dn = (Nokia)xs1.Deserialize(ds);
}
}
}
public class Mobile
{
public int Height = 10;
private int weight = 20;
public Mobile() {}
}
public class Nokia : Mobile
{
public string Signal = "Poor";
public Nokia() {}
}
Во время отладки, когда я быстро наблюдаю за моим объектом после десериализации, я могу найти переменную weight
в базе.Как это возможно?Или я где-то не прав?