2009-05-23 2 views
6

У меня есть множество сервисов, которые реализуют различные интерфейсы. например, IAlbumService, IMediaService и т. д.StructureMap Interceptors

Я хочу регистрировать вызовы для каждого метода на этих интерфейсах. Как это сделать с помощью StructureMap?

Я понимаю, что это почти то же самое, что и этот question. Я просто не использую виндзор.

ответ

2

Я думаю, что вы ищете this answer.

static void Main() 
{ 
    ObjectFactory.Configure(x => 
    { 
     x.For<Form>().Use<Form1>() 
      .InterceptWith(new ActivatorInterceptor<Form1>(y => Form1Interceptor(y), "Test")); 
    }); 
    Application.Run(ObjectFactory.GetInstance<Form>()); 

} 

public static void Form1Interceptor(Form f) 
{ 
    //Sets the title of the form window to "Testing" 
    f.Text = "Testing"; 
} 

Я бы не использовал ObjectFactory в реальном приложении, но, по крайней мере, концепция существует.

+0

Хороший! Не могу поверить, что ты наконец ответил на мой 5-летний вопрос :-) К счастью, я не терял сон по этому поводу, на самом деле я даже не могу вспомнить, для чего это было! –