У меня есть приложение ASP MVC 4, которое использует Structuremap. Я пытаюсь добавить logging к моему приложению через перехват Structuremap. В реестре я просматриваю конкретную сборку, чтобы зарегистрировать все ее типы со стандартным соглашением:
public class ServicesRegistry : Registry
{
public ServicesRegistry()
{
Scan(x =>
{
x.AssemblyContainingType<MyMarkerService>();
x.WithDefaultConventions();
});
}
}
Перехватчик:
public class LogInterceptor : IInterceptor
{
public void Intercept(IInvocation invocation)
{
var watch = Stopwatch.StartNew();
invocation.Proceed();
watch.Stop();//log the time
}
}
Я могу добавить перехватчик для одного конкретного типа плагина следующим образом:
var proxyGenerator = new ProxyGenerator();
container.Configure(x => x.For<IServiceA>().Use<ServiceA>().DecorateWith(instance => proxyGenerator.CreateInterfaceProxyWithTarget(instance, new LogInterceptor())));
но я хочу, чтобы структура структуры создала прокси-сервер для всех типов, которые были проверены в реестре. Есть ли способ достичь этого?