Как правильно десериализовать XML на языке C#?

Прошу помочь, изучаю работу с форматом XML на языке c#. Возникли проблемы с десериализацией файла. При непосредственной десериализации выводится ошибка(скрин ниже60f435cacb778089398362.png)
код:
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml;
using System.Xml.Serialization;
using System.IO;

namespace Test
{
    public class obj
    {
        string ProjectName;
        string MemberRole;
        string MemberName;

        public obj()
        {

        }
    }
    public class XmlToXml
    {
        public string path;
        public XmlDocument CurDoc = new XmlDocument();
        public XmlNode DocRoot;
        public void PutIn(string path)
        {
            this.path = path;
            CurDoc.Load(path);
            DocRoot = CurDoc.DocumentElement;
        }
        public void Deserialization()
        {
            XmlSerializer Deserializator = new XmlSerializer(typeof(obj[]));
             using (FileStream origin = new FileStream(path, FileMode.Open))
             {
                 obj[] ObjArray = (obj[])Deserializator.Deserialize(origin);
             }
        }

    }
    class Program
    {
        static void Main(string[] args)
        {
            XmlToXml a = new XmlToXml();
            a.PutIn(@"C:\Users\Даниил\source\repos\4-Задачи\TaskFromTheInterviewXml1.0Tests\TestXmlL1.xml");
            a.Deserialization();
        }
    }
}


XmlФайл:
<projects>
    <project name="xml">
        <member role="developer" name="Fedya"/>
	<member role="manager" name="Ivan"/>
	<member role="manager" name="Fedya"/>
    </project>
</projects>
  • Вопрос задан
  • 265 просмотров
Решения вопроса 1
@d-stream
Готовые решения - не подаю, но...
Лучше для начала взять свой объект и сериализовать его в xml и сравнить его с тем что опубликован...
Ну или "ленятйски" попросить VS сгенерировать классы по xml ( Edit -> PasteSpecial) и тогда сравнить со своим классом
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Griboks
@Griboks Куратор тега C#
Хочу дополнить, что подобная десериализация не рекомендуется в принципе, т. к. позволяет инъекции зловредного кода в вашу программу. Рекомендуется парсить файл и соответственно конструировать объект.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы