Квест об использовании единства для АОП - PullRequest
0 голосов
/ 31 марта 2012
    IUnityContainer Container = new UnityContainer();
    Container.RegisterType<MyService>();
    container.AddNewExtension<Interception>()
             .Configure<Interception>()
             .SetInterceptorFor<MyService>(new InterfaceInterceptor());

Ошибка: System.ArgumentException: Тип MyService не допускается.

Класс MyService не реализует интерфейс или класс. Как я могу написать это?

1 Ответ

4 голосов
/ 31 марта 2012

Вы должны написать интерфейс для класса:

public interface IMyService
{
    // place MyService method signatures here
}

Заставить свой сервис реализовать интерфейс:

public class MyService : IMyService
{
    // place MyService method implementation here
}

И затем зарегистрировать сервис, используя интерфейс и реализацию:

Container.RegisterType<IMyService, MyService>();

Окончательно инициализировать перехват для службы:

.SetInterceptorFor<IMyService>(new InterfaceInterceptor());
...