Десериализация Xml с несколькими блоками - C#
Формулировка задачи:
Есть файл, в котором хранится информация об аккаунтах
Подобных аккаунтов много. Использую метод десериализации xml
Есть код:
Так я могу получить параметры с одного аккаунта. А как, например, придать каждому аккаунту какой-нибудь номер и получать данные определённого аккаунта по его номеру? Ну или что-то подобное. Помогите, пожалуйста. Заранее спасибо
Листинг программы
- <Account>
- <Login>removed@mail.ru</Login>
- <Password>test</Password>
- <Nickname>testnick</Nickname>
- </Account>
- ...
Листинг программы
- public partial class Form1 : Form
- {
- public Form1()
- {
- InitializeComponent();
- }
- private void button1_Click(object sender, EventArgs e)
- {
- DeserializeObject("AccountsList.xml");
- }
- public void DeserializeObject(string filename)
- {
- XmlSerializer serializer = new XmlSerializer(typeof(Account));
- Account i;
- using (Stream reader = new FileStream(filename, FileMode.Open))
- {
- i = (Account)serializer.Deserialize(reader);
- }
- label1.Text = i.Login;
- label2.Text = i.Password;
- label3.Text = i.Nickname;
- }
- }
- public class Account
- {
- [XmlElement]
- public string Login;
- [XmlElement]
- public string Password;
- [XmlElement]
- public string Nickname;
- }
Решение задачи: «Десериализация Xml с несколькими блоками»
textual
Листинг программы
- using System;
- using System.Linq;
- using System.Collections.Generic;
- using System.Xml.Serialization;
- using System.IO;
- namespace NetExperiments
- {
- [XmlType("Accounts")]
- public class AccountsCollection
- {
- [XmlElement("Account")]
- public List<Account> Accounts;
- }
- public class Account
- {
- [XmlElement]
- public string Login;
- [XmlElement]
- public string Password;
- [XmlElement]
- public string Nickname;
- }
- class Program
- {
- static void Main(string[] args)
- {
- XmlSerializer serializer = new XmlSerializer(typeof(AccountsCollection));
- using (var reader = new StringReader(Resource1.XmlData))
- {
- var accounts = (AccountsCollection)serializer.Deserialize(reader);
- Console.WriteLine($"Found items: {accounts.Accounts.Count()}\r\n");
- foreach(var account in accounts.Accounts)
- {
- Console.WriteLine(" Login: {0}", account.Login);
- Console.WriteLine("Password: {0}", account.Password);
- Console.WriteLine("Nickname: {0}", account.Nickname);
- Console.WriteLine();
- }
- }
- Console.WriteLine("Done");
- Console.ReadKey();
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д