На моем веб-сайте ASP.NET все вызовы в области данных возвращают объекты как интерфейсы, и веб-сайт не должен знать, что такое конкретный тип. Это отлично работает, но у меня возникла проблема при попытке сохранить один из этих типов в профиле пользователя. Мой интерфейс реализует ISerializable, как следующее:Хранение Тип интерфейса в ASP.NET Профиль
public interface IInsured : IPerson, IEntity, ISerializable
и конкретный тип в datalayer ли реализовать ISerializable. Мой профиль недвижимости в web.config является:
<add name="ActiveInsured" type="FacadeInterfaces.IInsured" serializeAs="Binary" defaultValue="[null]"/>
Это компилируется нормально, но я получаю сообщение об ошибке выполнения на Profile.Save() о том, что интерфейс не может быть сериализации. Я также попробовал его с serializeAs = "Xml". Я думал, что если бы мой интерфейс реализовал ISerializable, это сработало бы.
У кого-нибудь была эта проблема раньше или известно об обходном пути?
У меня была аналогичная проблема с хранением общих списков в профиле. Моим обходным путем было создание класса, унаследованного от общего списка. например public class Недавно просмотренные: List Возможно, это сработает для вас? –