#c# #xml #serialization #reflection
#c# #xml #сериализация #отражение
Вопрос:
У меня проблемы с сериализацией свойств, которые являются классами, реализующими некоторый интерфейс.
public class A : InterfaceA
{
public A()
{
}
}
public interface InterfaceA
{
}
public class B
{
public A PropertyA { get; set; }
}
Я знаю о проблеме, связанной с сериализацией интерфейсов и абстрактных классов. Но относится ли это также к свойствам, которые где-то реализуют интерфейс? Если бы это было так, вы также не смогли бы сериализовать идентификатор Guid.
Исключение: «Невозможно сериализовать свойство элемента типа InterfaceA, поскольку это интерфейс».
Комментарии:
1. Можете ли вы показать код, который вы используете для сериализации этого? (Я столкнулся с аналогичной проблемой с Newtonsoft. Json и смог решить ее, добавив некоторое пользовательское сопоставление).
2. @EJoshuaS Действительно, это можно было бы сделать с помощью пользовательского сопоставления. Дело в том, что я не хочу этого делать, потому что это огромный существующий проект, и реализация пользовательского сопоставления сделает его еще более сложным.
3. Я предположил, что это тоже добавит много сложностей, но на самом деле это было довольно просто в Newtonsoft и было довольно хорошо отделено от остальной системы. Я не уверен, какую библиотеку вы используете, или было бы так же просто реализовать что-то подобное в вашей текущей библиотеке, но это один из вариантов, на который стоит обратить внимание.