IInterface などのインターフェイスを実装するオブジェクトを保存しようとしています。
private PersistentDictionary<string, IInterface> Object = new PersistentDictionary<string, IInterface>(Environment.CurrentDirectory + @"\Object");
多くのクラスが同じインターフェイスを実装しているため (すべてキャッシュする必要があります)、一般的なアプローチとして、IInterface 型のオブジェクトをディクショナリに格納します。
そのため、そのオブジェクト型を引き出して IInterface としてキャストし、そのオブジェクトのメソッドの内部実装などを使用できます。
しかし、Esent キャッシュが初期化されるとすぐに、次のエラーがスローされます:
SetColumn
パラメータ名: TColumn
実際の値は IInterface でした。
同じことを行うために使用XmlSerializer
しないようにしましたが、インターフェイス タイプを逆シリアル化できません。また、インターフェイスの上で[Serializable]
属性を使用できないため、行き詰まっています。
また、インターフェイスのすべての実装 (クラス) を[Serializable]
死にかけた試みとして作成しようとしましたが、役に立ちませんでした。
誰でも抜け道を知っていますか?前もって感謝します !!!