我正在尝试在 .net MVC 4 应用程序中使用城堡的动态代理库来实现 AOP 日志记录。我们使用结构映射来进行依赖注入。
我已经成功地为我们的标准普通 MVC 控制器设置了 AOP 日志记录,但我们也有一个包含我们也使用的 WebAPI 控制器的文件夹。
我遇到的问题是,对于任何 WEBApi 调用,我都会收到以下错误
"Unable to cast object of type 'Castle.Proxies.IHttpControllerProxy' to type 'Web.Controllers.Services.Home.apiContollerName'.","ExceptionType":"System.InvalidCastException"
这是我的拦截器设置的设置详细信息
//Logging Interceptor in strucutremap ObjectFactory.Initialize
x.RegisterInterceptor(new LogTypeInterceptor());
这是我的处理方法
public object Process(object target, IContext context)
{
var obj = new object();
obj = _proxyGenerator.CreateInterfaceProxyWithTargetInterface(
target.GetType().GetInterfaces().First(),
target.GetType().GetInterfaces(),
target, new LoggingInterceptor());
return obj;
}
我怀疑我需要在 _proxyGenerator 上调用不同的方法,但我是新手,不知道应该调用什么方法。