0

我遇到了企业库中的策略注入应用程序块与 ASP.NET MVC 结合使用的问题。

在我的 ControllerFactory 中,我正在创建控制器,然后调用PolicyInjection.Wrap控制器。这给了我一个透明代理到管理调用处理程序链的控制器。

最后,我将透明代理转换为 anIController并返回它。

这似乎工作得很好,除了我为控制器定义的调用处理程序都没有执行。(例如,我配置了一个日志处理程序,但 PIAB 没有记录任何内容。)

我的最终演员是否以某种方式搞砸了这一切?如何ControllerBase.Execute()调用我的控制器?似乎应该使用我的代理。有人在 ASP.NET 控制器上使用 PIAB 吗?

4

2 回答 2

1

我正在使用 PIAB 来包装 ASP.NET MVC 控制器,我这样做是通过调用

PolicyInjection.Wrap<IController>(instance)

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

我没有成功使用 MarshalByRefObject 包装来包装控制器,但界面包装就像一个魅力。

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

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

于 2009-11-30T14:18:51.990 回答
-2

似乎至少有一个人使用它 :) - ASP.NET MVC Validation using Policy Injection Application Block in Enterprise Library (顺便说一句,这是第一个结果)

于 2009-07-05T21:01:10.533 回答