Все примеры беглого nhibernate делают такой (или похожий) вызов:
c.AddMappingsFromAssembly(typeof(Product).Assembly);
Я не хочу использовать "typeof (Product) .Assembly", поскольку я не хочу, чтобы здесь была ссылка на мой проект домена (класс "Procuct") В обычном 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.