2009-08-12 20 views
0

在我的ASP.NET網站中,所有對數據層的調用都將返回實體作爲接口,並且網站不需要知道具體類型是什麼。這工作正常,但我嘗試將其中一種類型存儲到用戶配置文件時遇到問題。我的界面實現了ISerializable,如下所示:在ASP.NET配置文件中存儲接口類型

public interface IInsured : IPerson, IEntity, ISerializable 

並且數據層中的具體類型確實實現了ISerializable。在web.config中我的個人資料屬性是:

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

它編譯就好了,但我得到一個運行時錯誤的Profile.Save()說,接口不能被序列化。我也用serializeAs =「Xml」來試用它。我認爲如果我的界面實現了ISerializable,它就可以工作。

以前有人遇到過這個問題或知道解決方法嗎?

+0

我在配置文件中存儲泛型列表時遇到了類似的問題。我的解決方法是創建一個從通用列表繼承的類。例如公開課最近瀏覽:列表也許這會適合你? – 2009-08-12 16:12:04

回答

0

在配置文件屬性的上下文中,您必須明確指定要序列化的類型。

無法實例的接口,從而ASP.net不能實例化一個接口,您提出現異常。