Я пытаюсь сериализовать следующий объект:
[XmlRoot("book")]
public class Book
{
#region Properties
[XmlAttribute("isbn-10")]
public string Isbn10 { get; set; }
[XmlAttribute("isbn-13")]
public string Isbn13 { get; set; }
[XmlAttribute("title")]
public string Title { get; set; }
[XmlAttribute("author")]
public string Author { get; set; }
[XmlAttribute("collaborator")]
public string Collaborator { get; set; }
[XmlAttribute("publisher")]
public string Publisher { get; set; }
[XmlAttribute("publication")]
public DateTime? Publication { get; set; }
[XmlAttribute("pages")]
public int Pages { get; set; }
[XmlAttribute("instock")]
public bool InStock { get; set; }
#endregion
#region Constructors
public Book (string isbn10, string title, string author, string publisher, DateTime publication, int pages, bool instock=true, string isbn13="N/A", string collaborator="N/A")
{
this.Isbn10 = isbn10;
this.Isbn13 = isbn13;
this.Author = author;
this.Collaborator = collaborator;
this.Publisher = publisher;
this.Publication = publication;
this.Pages = pages;
this.InStock = instock;
}
public Book ()
{
// To be serialized by an XmlSerializer object, a class must have a default constructor.
// For additional information about XML Serialization Considerations, visit the following
// Microsoft Web site: http://msdn2.microsoft.com/en-us/library/182eeyhh(vs.71).aspx
}
#endregion
}
Пытаюсь реализовать объекты к элементам и свойства к атрибутам вид стратегии, но, как вы, вероятно, заметите,результаты показывают, что я не совсем там, так как компилятор по праву запрещает мне устанавливать атрибут [XmlElement("book")]
для класса Book
.
<?xml version="1.0" encoding="utf-16"?>
<book xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
isbn-10="1577315936"
isbn-13="N/A"
author="Joseph Campbell"
collaborator="N/A"
publisher="New World Library"
publication="2008-07-28T00:00:00"
pages="432"
instock="true"
/>
Я подумал о создании, скажем, List<Book>
объект с очевидной идеей наличия корневого элемента <books >
для сериализации, но с одной стороны, я не совсем уверен, сработает ли это на самом деле, а с другой стороны, это, вероятно, сделает сериализацию зависимой от фактической реализации.
Буду очень признателен за любые советы, которые вы, ребята, могли бы счесть полезными, включая изменение стратегии сериализации и т. Д.
Заранее большое спасибо,