相关疑难解决方法(0)

Autofac未填充动作过滤器属性

我在ASP.NET MVC 3应用程序中有一个动作过滤器,需要注入一些依赖项.我使用Autofac.Mvc3作为依赖注入器.

根据autofac wiki,我只需要注册我想要注入的类型,调用RegisterFilterProvider,并在我的动作过滤器上放置一个公共属性,然后autofac将在过滤器实例化期间用正确的对象填充属性.

以下是我的操作过滤器的一部分:

Public Class LogActionAttribute
    Inherits ActionFilterAttribute

    Property tracer As TraceSource

    Public Overrides Sub OnActionExecuting(filterContext As System.Web.Mvc.ActionExecutingContext)
        ...
        tracer.TraceData(...)
        ...
    End Sub
End Class
Run Code Online (Sandbox Code Playgroud)

这是我的global.asax的一部分:

Public Class MvcApplication
    Inherits System.Web.HttpApplication

    Shared Sub RegisterGlobalFilters(ByVal filters As GlobalFilterCollection)
        filters.Add(New MyHandleErrorAttribute)
        filters.Add(New LogActionAttribute)
    End Sub

    Sub Application_Start()
        InitSettingRepoEtc()
        ...
    End Sub

    Protected Shared Sub InitSettingRepoEtc()
        ...
        Dim builder = New ContainerBuilder
        builder.RegisterControllers(Reflection.Assembly.GetExecutingAssembly)
        ...
        builder.Register(Of TraceSource)(
            Function(x) New TraceSource("requests", SourceLevels.All)).InstancePerHttpRequest()
        ...
        builder.RegisterFilterProvider()
        Dim container = builder.Build …
Run Code Online (Sandbox Code Playgroud)

autofac action-filter asp.net-mvc-3

6
推荐指数
1
解决办法
2628
查看次数

标签 统计

action-filter ×1

asp.net-mvc-3 ×1

autofac ×1