私はNHibernateフォーラムでこれを尋ねましたが、これはより一般的な質問だと思います. Hibernate はプロキシ ジェネレータ (Castle など) を使用してプロキシを作成します。
私がやりたいことは、生成されたプロキシを拡張して、独自のカスタム動作 (つまり比較機能) を実装することです。次の標準的な .NET の動作では正しい結果が得られないため、これが必要です。
//object AC is a concrete class
collection.Contains(AC) = true
//object AP is a proxy with the SAME id and therefore represents the same instance as concrete AC
collection.Contains(AP) = false
私の比較子が AP によって実装された場合 (つまり、id の一致を行う場合)、collection.Contains(AP) は、プロキシが暗黙的である場合に予想されるように、true を返します。(NB: NH が基本クラスから継承されていると言う人にとっては、そうですが、NH はインターフェイスから継承することもできます。これが私たちが行っていることです)
これが可能か、どこから始めればよいか、まったくわかりません。これは、NH が使用する一般的なプロキシ ジェネレーターのいずれかで実行できるものですか?