Я использую MvcContrib для выполнения моей инъекции зависимостей контроллера Spring.Net ASP.Net MVC. Мои зависимости не вставляются в мой фильтр действий CustomAttribute. Как я могу получить в нем свои зависимости?Использование Spring.Net для встраивания зависимостей в ASP.NET MVC ActionFilters
Скажем у вас есть ActionFilter, что выглядит так:
public class CustomAttribute : ActionFilterAttribute, ICustomAttribute
{
private IAwesomeService awesomeService;
public CustomAttribute(){}
public CustomAttribute(IAwesomeService awesomeService)
{
this.awesomeService= awesomeService;
}
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
//Do some work
}
}
с разделом конфигурации Spring.NET, который выглядит так:
<object id="CustomAttribute " type="Assembly.CustomAttribute , Assembly" singleton="false">
<constructor-arg ref="AwesomeService"/>
</object>
И вы используете атрибут как так:
[Custom]
public FooController : Controller
{
//Do some work
}
Это единственный способ, которым я смог это сделать, поскольку большинство сценариев инъекций начинаются с контроллера. Вы можете установить DependencyResolver по умолчанию в MVC для использования Spring на основе того, что вам нужно реализовать .... это сохранит специальный код Spring вне ваших атрибутов. – Pharcyde