Hier ist meine Liste der Klassen: -Wie serialisiert ich eine Klasse mit Eigenschaften, die als Schnittstellen deklariert sind?
public interface IUniquelyIdentifiable
{
string AuthorName { get; set; }
}
public interface IUniquelyIdentifiable1
{
string CategoryName { get; set; }
}
public interface IUniquelyIdentifiable2
{
string PublisherName { get; set; }
}
[Serializable]
public class Book
{
//BookId, Category, Title, Author, Publisher, Description, Price, ISBN, PublicationDate.
public IUniquelyIdentifiable Author { get; set; }
public IUniquelyIdentifiable1 Category { get; set; }
public IUniquelyIdentifiable2 Publisher { get; set; }
public int BookId { get; set; }
public string Title { get; set; }
public string Description { get; set; }
public int ISBN { get; set; }
public int Price { get; set; }
public string PublicationDate { get; set; }
}
[Serializable]
class Author : IUniquelyIdentifiable
{
//AuthorId, AuthorName, DateOfBirth, State, City, Phone
public int AuthorId { get; set; }
public string AuthorName { get; set; }
public string DateOfBirth { get; set; }
public string State { get; set; }
public string City { get; set; }
public int Phone { get; set; }
}
[Serializable]
class Category : IUniquelyIdentifiable1
{
//CategoryId, CategoryName, Description
public int CategoryId { get; set; }
public string CategoryName { get; set; }
public string Description { get; set; }
}
[Serializable]
class Publisher : IUniquelyIdentifiable2
{
//PublisherId, PublisherName, DateOfBirth, State, City, Phone.
public int PublisherId { get; set; }
public string PublisherName { get; set; }
public string DateOfBirth { get; set; }
public string State { get; set; }
public string City { get; set; }
public int Phone { get; set; }
}
unten ist die Methode, die die Objekte der obigen Klassen erstellt zu serialisiert versucht: -
public static void XmlSerializeMyObject()
{
XmlSerializer writer = new XmlSerializer(typeof(Book));
//overview.title = "Serialization Overview";
var path = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "//SerializationOverview.xml";
FileStream file = File.Create(path);
writer.Serialize(file,bookList);
file.Close();
}
Wie Sie habe ich auch das sehen Attribut [Serializable] aber immer noch den Fehler, dass ich Schnittstellen nicht serialisieren kann.
Auch ich möchte nur die Objekte der angegebenen Klassen und nicht Schnittstellen serialisieren.
Mögliches Duplikat von [Serialisierungsschnittstellen] (http://stackoverflow.com/questions/4659248/serializing-interfaces) –
Nein ist es nicht. Diese Frage ist nicht geschlossen. Es hat nicht einmal eine richtige Antwort. Bitte überprüfen Sie diese richtig, bevor Sie Fragen stellen. –
versuchen Sie mit DataContract Serializer https://msdn.microsoft.com/en-us/library/system.runtime.serialization.datacontractserializer.aspx – Thorarins