Я создаю экземпляр типа, привязанного к HTTPContextScoped.Я пытаюсь выяснить, как внедрить этот конкретный экземпляр в свойство того же типа в атрибут, который я не могу контролировать.
Я хочу добавить определенный экземпляр UnitOfWork в свойство типа IUnitOfWork в атрибуте ( см. Код ниже )
Вот мой метод ObjectFactory.Initialize () части, на которую я ссылаюсь:
ObjectFactory.Initialize(x =>
{
//...
//additional content
//...
x.For<IUnitOfWork>()
.HttpContextScoped()
.Use(context => new UnitOfWork(
context.GetInstance<ISessionFactory>()));
x.SetAllProperties(context =>
{
context.Matching(p =>
p.DeclaringType == typeof(UnitOfWorkAttribute));
context.OfType<IUnitOfWork>();
});
Класс атрибута:
public class UnitOfWorkAttribute : ActionFilterAttribute {
public IUnitOfWork UnitOfWork { get; set; }
public UnitOfWorkAttribute() {
Order = 0;
}
public void OnActionExecuting(ActionExecutingContext filterContext) {
UnitOfWork.Begin();
}
public void OnActionExecuted(ActionExecutedContext filterContext) {
UnitOfWork.End();
}
}
Я пытался следовать одному из ДжеремиПримеры Миллера об использовании критериев для этого, но я что-то не так делаю.
Есть мысли о том, что я делаю неправильно?
ПРИМЕЧАНИЕ Это действительно создает UnitOfWorkэкземпляр, как я использую его где-то еще, но я определенно не правильно (или вообще) вводить свойство этого атрибута с этим экземпляром (или любым другим в этом отношении).