0

在我的 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 它将起作用。

有人以前遇到过这个问题或知道解决方法吗?

4

1 回答 1

0

在配置文件属性的上下文中,您必须明确指定要序列化的类型。

您无法实例化接口,因此 ASP.net 无法实例化接口并且您提到的异常会发生。

于 2010-05-02T01:16:26.427 回答