私はこの偉大なチュートリアルを使用して、私のMVCアプリケーションにElmahを実装しようとしています。DefaultControllerFactoryでCreateControllerをオーバーライドしているように見えない
http://dotnetdarren.wordpress.com/2010/07/27/logging-on-mvc-part-1/
すべてが細かいようだが、私はビルドするとき、私は
以下
を上書きすることが分かっていない適切な方法は、私がサンプルから右に取ったクラスで取得
public class ErrorHandlingControllerFactory : DefaultControllerFactory
{
/// <summary>
/// Injects a custom attribute
/// on every action that is invoked by the controller
/// </summary>
/// <param name="requestContext">The request context</param>
/// <param name="controllerName">The name of the controller</param>
/// <returns>An instance of a controller</returns>
public override IController CreateController(
RequestContext requestContext,
string controllerName)
{
var controller =
base.CreateController(requestContext,
controllerName);
var c = controller as Controller;
if (c != null)
{
c.ActionInvoker =
new ErrorHandlingActionInvoker(
new HandleErrorWithELMAHAttribute());
}
return controller;
}
}
これを私のソリューションのデフォルトのMVCプロジェクトに移動すると、動作するようです。 – Wil