2009-07-05 45 views
0

我运行到与结合的政策注入应用程序块的企业库与ASP.NET MVC的问题。政策注射液ASP.NET MVC控制器

在我的ControllerFactory,我创建了控制器,然后调用控制器上​​。这给了我一个管理呼叫处理链的控制器的透明代理。

最后,我投了透明代理的IController并将其返回。

这似乎很好地工作,只是没有被执行,我为我的控制器中定义的呼叫处理程序。 (例如,我配置了日志处理程序,但没有什么是被PIAB记录。)

是我最后投某种程度上搞乱这个吗? ControllerBase.Execute()如何进入我的控制器?似乎应该使用我的代理。任何人在ASP.NET控制器上使用PIAB?

回答

1

我使用PIAB包装ASP.NET MVC控制器,而我通过调用

PolicyInjection.Wrap<IController>(instance)这样做

它将包装IController方法。我也使用策略注入来包装IActionInvoker,它也被使用,它允许记录动作名称。

我还没有使用的MarshalByRefObject包装成功包装控制器,但接口的包装就像一个魅力。

如果您需要其他信息,您可以创建一个接口,其中包含IController,IActionFilter,IAuthorizationFilter,IExceptionFilter和IResultFilter中的所有方法,然后让您的控制器实现该接口。然后,您可以将控制器作为该接口包装,并通过策略注入获得更多呼叫。

我希望有帮助。如果您有更具体的问题,请发布。