Данный:
Проблема:
Я получаю ошибки как следующее:
Не может сериализировать участника [пространство имен]. [объект]. [свойство] типа Iesi. Наборы. Универсальный. ISet '1 [[пространство имен]. [объект], [блок], Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], потому что это - интерфейс.
Необходимо реализовать средство доступа по умолчанию на Iesi. Наборы. Универсальный. HashedSet '1 [[пространство имен]. [объект], [блок], Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], потому что это наследовалось ICollection.
Мои вопросы:
Как заметка на полях, я пытался гуглить для справки.
- Я не думаю, что это - новая проблема.
Сериализация NHibernate была обработана много на стековом переполнении . См.:
Bottom line: use DTOs.
Попробуйте вместо этого воспользоваться DataContractSerializer. Это более ограничено, но позволит сериализовать больше.
Дэн Ригсби объясняет разницу между XMLSerializer и DataContractSerializer
Вот пример из одной из моих записей о stackoverflow:
public XDocument GetProductXML(Product product)
{
var serializer = new DataContractSerializer(typeof(Product));
var document = new XDocument();
using (var writer = document.CreateWriter())
{
serializer.WriteObject(writer, product);
writer.Close();
}
return document;
}
Вы никогда не сможете сериализовать интерфейс XML - только конкретный класс, реализующий интерфейс.
-.