Вы правы, никто, на самом деле, никто не делает, так что проще просто разобрать файл XML.Но вы можете использовать приведенный ниже код, если предположим, что вы хотите связать управление напрямую с файлом XML и хотите иметь хорошую сериализацию / desirealize.Обычно я использую этот метод только при работе с большими данными, которые WCF не может обработать (т. Е. 50-600 МБ на вызов).
Создайте новый класс с именем XmlNodeItem.Класс представляет отдельный узел из файла XML
public class XmlNodeItem
{
[XmlAttribute( AttributeName = "Bet" )]
public string Bet
{
get;
set;
}
[XmlAttribute( AttributeName = "SomeOtherStuff" )]
public string SomeOtherStuff
{
get;
set;
}
}
. Затем создайте еще один класс с именем XmlNodeItemList, который наследуется от ObservableCollection объекта XmlNodeItem.
[XmlRoot( ElementName = "Items" )]
public class XmlNodeItemList : ObservableCollection<XmlNodeItem>
{
public void AddRange( IEnumerable<XmlNodeItem> range )
{
foreach ( XmlNodeItem node in range )
{
this.Add( node );
}
}
}
Затем получите ваши данные
public DataClass: XmlNodeItemList
{
var data = AddRange( RetrieveData( File.Open( value, FileMode.Open ) ) );
//Retrieve Data method
public XmlNodeItemList RetrieveData( Stream xmlStream )
{
XmlSerializer serializer = new XmlSerializer( typeof( XmlNodeItemList ) );
StreamReader reader = new StreamReader( xmlStream );
XmlNodeItemList list = ( XmlNodeItemList )serializer.Deserialize( reader );
return list;
}
}