Я делаю небольшую программу, чтобы дополнительно изучить сериализацию xml, в которой я сохраняю идентификатор, имя, возраст, принадлежащий объекту с именем Person. Но почему-то это исключает исключение (xmlTeste.Person недоступен из-за уровня защиты. Можно обрабатывать только публичные типы.). Как я могу улучшить свой код? Ожидаемый результат - это файл xml, созданный с объектом Person.Проблема с уровнем защиты при сериализации
Объект Person:
class Person
{
#region Variables
private int id = 0;
private string name = string.Empty;
private int idade = 0; //it's age in portuguese
#endregion
#region Properties
public int Id
{
get { return id; }
set { id = value; }
}
public string Name
{
get { return name; }
set { name = value; }
}
public int Idade //again... means age
{
get { return idade; }
set { idade = value; }
}
#endregion
}
Мой класс для управления XML-сериализации
class XMLController
{
private static void SerializeAndSaveObject(XmlSerializer writer, Person item)
{
var path = "C://Folder//teste.xml";
FileStream file = File.Create(path);
writer.Serialize(file, item);
file.Close();
}
public static void SaveFile(Person person)
{
SerializeAndSaveObject(new XmlSerializer(typeof(Person)), pessoa);//here is where i am having the error
//An unhandled exception of type 'System.InvalidOperationException' occurred in System.Xml.dll
//Additional information: xmlTeste.Pessoa is inaccessible due to its protection level. Only public types can be processed.
}
}
Использование:
private void btnGo_Click(object sender, EventArgs e)
{
Person p = new Person
{
Id = 2,
Name = "DEFEF",
Idade = 2 //means age
};
xmlTeste.XMLController.SaveFile(p);
}
Я провел часы, глядя на ошибку, и это было так очевидно ... Спасибо за указание, что из! – wannabeLearner
@AlexeiLevenkov Обновлено, tx –