在我的 ASP.NET 网站中,所有对数据层的调用都将实体作为接口返回,并且网站不需要知道具体类型是什么。这很好用,但是在尝试将其中一种类型存储到用户配置文件中时遇到了问题。我的接口实现了 ISerializable,如下所示:
public interface IInsured : IPerson, IEntity, ISerializable
并且数据层中的具体类型确实实现了 ISerializable。我在 web.config 中的 Profile 属性是:
<add name="ActiveInsured" type="FacadeInterfaces.IInsured" serializeAs="Binary" defaultValue="[null]"/>
它编译得很好,但是我在 Profile.Save() 上收到运行时错误,说接口无法序列化。我也用 serializeAs="Xml" 试过了。我认为如果我的接口实现 ISerializable 它将起作用。
有人以前遇到过这个问题或知道解决方法吗?