Я пытаюсь использовать Unity для применения обработчика вызовов через атрибут к моему методу ApiController, но обработчик вызова никогда не вызывается.Перехват атрибута Unity с ASP.NET Web Api
Атрибут:
public class LogAttribute : HandlerAttribute
{
private readonly int _order;
public LogAttribute(int order)
{
_order = order;
}
public override ICallHandler CreateHandler(Microsoft.Practices.Unity.IUnityContainer container)
{
return new LoggingCallHandler
{
Order = _order
};
}
}
обработчик вызова:
public class LoggingCallHandler : ICallHandler
{
public IMethodReturn Invoke(IMethodInvocation input, GetNextHandlerDelegate getNext)
{
//.....stuff
}
}
Регистрация:
container.AddNewExtension<Interception>();
container.RegisterType<IMyApiController>();
container.Configure<Interception>()
.SetInterceptorFor<IMyApiController>(new InterfaceInterceptor());
Dependency Резольвер (с использованием WebActiviatorEx):
public static class UnityWebApiActivator
{
public static void Start()
{
var resolver = new UnityDependencyResolver(UnityConfig.GetConfiguredContainer());
GlobalConfiguration.Configuration.DependencyResolver = resolver;
}
}
Где вы применяете 'LogAttribute'? –
Просто по методу ApiController ... –