流暢なnhibernateのすべての例は、そのような(または同様の)呼び出しを行います:
c.AddMappingsFromAssembly(typeof(Product).Assembly);
ここでドメインプロジェクト(「Procuct」クラス)を参照したくないので、tuで「typeof(Product).Assembly」を使用したくありません。通常のNHibernateでは、hbm.xmlファイルを作成し、web.configに次のエントリを作成します。
<mapping assembly="TestingFluentHN"/>
ただし、このエントリはFluentNHibernateでは機能しません。セッション構築方法でアセンブリを提供するエレガントな方法はありますか?できれば設定ファイルから。
リソース:不要なコード/依存関係のコンテキスト:
static NHSessionManager()
{
Configuration c = new Configuration();
//change following to sth that does not need refernce to domain
c.AddMappingsFromAssembly(typeof(Product).Assembly);
c.Configure();
sessionFactory = c.BuildSessionFactory();
}
私の最初のアイデアは、appSettingsからアセンブリ名を読み取り、それらをロードすることでした。
var assembliesToMap = new List<string>();
foreach (var assemblyName in assembliesToMap)
{
var assembly = Assembly.LoadFile(assemblyName);
c.AddMappingsFromAssembly(assembly);
}
しかし、それが私の最後の選択肢です。流暢なnhibernateでsthビルドを探しています。