2

NHibernate を使用して、ASP.NET MVC アプリケーションで次のクラスを Oracle データベースにマップしています。

public class User
{
    // Needs to be encrypted/decrypted when persisting
    public virtual string Question { get; set; }
}

私が見つけたいくつかの例に従って、NHibernate の IUserType の実装を使用して、データベースexampleに永続化または取得するときにデータを変換したいと思います。

アプリケーションの他の部分でデータ暗号化を処理するクラスを既に作成しているのでEncryptionService、それをユーザー タイプに挿入したいと考えています。Autofac を使用して IUserType でコンストラクター インジェクションを実行する方法はありますか?

4

2 に答える 2

1

NHibernate は、IUserType 実装のインスタンスの作成を担当します。これを構成可能にしたい場合は、AutoFac コンテナーからサービスを照会できます (明らかに、これは依存性注入ではなく、サービス ロケーターのようなものです)。または、IConfigurable を実装して、パラメーターのディクショナリを取得することもできます。これらのパラメーターの 1 つがクラス名である可能性があります。

于 2010-10-21T16:04:20.277 に答える
1

Autofac contrib にある Autofac の BytecodeProvider を使用します。

http://chadly.net/post/2009/05/28/Dependency-Injection-with-NHibernate-and-Autofac.aspx

http://code.google.com/p/autofac/downloads/list

于 2011-01-11T15:47:02.973 に答える