Внедрение службы в реализацию IUserType NHibernate с использованием Autofac - PullRequest
2 голосов
/ 19 октября 2010

Я использую NHibernate для сопоставления следующего класса с базой данных Oracle в моем приложении ASP.NET MVC:

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

Следуя нескольким найденным примерам, я хотел бы использовать реализациюIUserType от NHibernate для преобразования моих данных, когда они сохраняются или извлекаются из моей базы данных пример .

Поскольку я уже написал класс EncryptionService для шифрования данных в других частях моего приложения, я хотел бы внедрить его в свой тип пользователя.Есть ли способ выполнить внедрение конструктора в IUserType с использованием Autofac?

Ответы [ 2 ]

1 голос
/ 11 января 2011

Используйте BytecodeProvider от Autofac, который вы можете найти в Autofac contrib.

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

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

1 голос
/ 21 октября 2010

NHibernate отвечает за создание экземпляров реализаций IUserType.Если вы хотите, чтобы это настраивалось, вы можете запросить службу из контейнера AutoFac (очевидно, это не внедрение зависимости, а скорее поиск службы).Или вы можете реализовать IConfigurable, который позволяет вам брать в Словаре параметров.Одним из этих параметров может быть имя класса.

...