Десериализация 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(); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д