私は一般的にジェネリック (概念または構文) にあまり精通していません (コレクションでそれらを使用することを除く) が、次の方法が私が望むものを達成するための最良の方法であるかどうか疑問に思っていました. 実際、私はこの場合、ジェネリックが私の問題を解決してくれると完全に確信しているわけではありません。
私は NHibernate で数十個のオブジェクトをモデル化してマッピングしましたが、タイプごとに個別の永続化クラスを作成するのではなく、CRUD 操作用にある種のユニバーサル クラスが必要です。
Sub Update(someObject as Object, objectType as String)
Dim session As ISession = NHibernateHelper.OpenSession
Dim transaction As ITransaction = session.BeginTransaction
session.Update(ctype(someObject, objectType))
transaction.Commit()
End Sub
someObject は異なる型にすることができます。これが最善の方法ではないことはわかっていますが(またはうまくいく場合でも)、誰かが私を正しい方向に導いてくれることを願っています。