0

私の ASP.NET Web サイトでは、データ レイヤーへのすべての呼び出しがエンティティをインターフェイスとして返すため、Web サイトは具象型が何であるかを知る必要はありません。これは問題なく動作しますが、これらのタイプの 1 つをユーザー プロファイルに保存しようとしたときに問題が発生しました。私のインターフェイスは、次のように ISerializable を実装しています。

public interface IInsured : IPerson, IEntity, ISerializable

データレイヤーの具象型は ISerializable を実装しています。web.config の My 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 に答える