У меня есть следующий XML, который я хотел бы воспроизвести с помощью XML-сериализации:C# XML сериализации нескольких объектов одного и того же типа в пределах одного тега
<Room>
<!-- One light-->
<light Type="Incadenscent" fin="QS f" ItemType="something "/>
<!-- Unlimited Tables -->
<table Type="BR" Id="10"/>
<table Type="BL" Id="21"/>
<table Type="BR" Id="22"/>
<table Type="GR" Id="35"/>
<table Type="BR" Id="18"/>
<table Type="RE" Id="55"/>
</Room>
Ниже приведены мои типы объектов:
public class Table
{
[XmlAttribute("type")]
public string Type
{
get; set;
}
[XmlAttribute("Id")]
public String Id
{
get; set;
}
}
public class Light
{
[XmlAttribute("type")]
public string Type
{
get; set;
}
[XmlAttribute("fin")]
public string FIN
{
get; set;
}
[XmlAttribute("ItemType")]
public string ItemType
{
get; set;
}
}
public class Room{
public Table Table
{
get; set;
}
public Light Light
{
get; set;
}
}
public class Program
{
static void Main(string[] args)
{
List<Room> list = new List<Room>
{
new Room
{
Light = new Light{ Type="Incadenscent", fin="QS", ItemType="something"},
Table = new Table{Type="Metal", Id="10"}
//error here when I try to add a new table object
Table = new Table{Type="Wood", Id="13"}
}
} ;
SerializeToXML(list);
}
static public void SerializeToXML(List<Room> sample)
{
XmlSerializer serializer = new XmlSerializer(typeof(List<Room>)););
TextWriter textWriter = new StreamWriter(@"C:\assets.xml");
serializer.Serialize(textWriter, sample);
textWriter.Close();
}
}
Я получаю сообщение об ошибке (в частности, дублирование объекта) при попытке создать экземпляр другого объекта таблицы в объекте Room. Что я делаю не так?
, например:
**Table = new Table{Type="Wood", Id="13"}**
Как я могу создать экземпляр другого объекта таблицы в списке номеров, не получая ошибку дублирования
У вас есть один свет и один стол за номер, поэтому, чтобы добавить еще один стол, вам нужна другая комната. –
Как я могу создать экземпляр другого объекта таблицы в списке комнат без получения ошибки дублирования? – user1324418