動的プロキシインターセプターメソッドでコントローラーとアクションの名前を見つけたいのですが、スタックトレースのアプローチが適切ではないことを確認します。これは、このコードのスタックで最後ではないためです。
グローバルasax城の構成
IWindsorContainer ioc = new WindsorContainer();
ioc.Register(
Component.For<IMyService>().DependsOn()
.ImplementedBy<MyService>()
.Interceptors<MyInterceptor>()
.LifeStyle.PerWebRequest);
ControllerBuilder.Current.SetControllerFactory(new WindsorControllerFactory(ioc));
ioc.Register(
Component.For<IInterceptor>()
.ImplementedBy<MyInterceptor>());
コントローラクラス
private IMyService _service;
public HomeController(IMyService service)
{
_service = service;
}
public ActionResult Index()
{
_service.HelloWorld();
return View();
}
サービスクラス
public class MyService : IMyService
{
public void HelloWorld()
{
throw new Exception("error");
}
}
public interface IMyService
{
void HelloWorld();
}
インターセプタークラス
//i want to find Controller name
public class MyInterceptor : IInterceptor
{
public void Intercept(IInvocation invocation)
{
//?? controller name ?? method Name
invocation.Proceed();
}
}