C# 在ASP.NET配置文件中存储接口类型

C# 在ASP.NET配置文件中存储接口类型,c#,asp.net,serialization,interface,asp.net-profiles,C#,Asp.net,Serialization,Interface,Asp.net Profiles,在我的ASP.NET网站中,所有的调用都作为接口返回数据层实体,网站不需要知道具体类型是什么。这很好,但我在尝试将其中一种类型存储到用户配置文件时遇到了问题。我的接口实现ISerializable,如下所示: public interface IInsured : IPerson, IEntity, ISerializable 数据层中的具体类型实现了ISerializable。web.config中的“我的配置文件”属性是: <add name="ActiveInsured" type

在我的ASP.NET网站中,所有的调用都作为接口返回数据层实体,网站不需要知道具体类型是什么。这很好,但我在尝试将其中一种类型存储到用户配置文件时遇到了问题。我的接口实现ISerializable,如下所示:

public interface IInsured : IPerson, IEntity, ISerializable
数据层中的具体类型实现了ISerializable。web.config中的“我的配置文件”属性是:

<add name="ActiveInsured" type="FacadeInterfaces.IInsured" serializeAs="Binary" defaultValue="[null]"/>

它编译得很好,但是我在Profile.Save()上得到一个运行时错误,说接口无法序列化。我还使用serializeAs=“Xml”进行了尝试。我认为,如果我的接口实现了ISerializable,它就会工作


任何人以前有过此问题或知道解决方法?

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


您无法实例化接口,因此ASP.net无法实例化接口,出现了您提到的异常。

我在配置文件中存储泛型列表时遇到了类似的问题。我的解决方法是创建一个从泛型列表继承的类。e、 g.最近查看的公共课:列出这可能对你有用吗?