私の 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 を実装していれば、うまくいくと思いました。
以前にこの問題が発生したか、回避策を知っている人はいますか?