将相同类型注册到多个接口

Sła*_*iek 11 unity-container

可以将一种类型注册到多个接口吗?

我有类实现两个接口

MyService : IService1, IServier2 {}
Run Code Online (Sandbox Code Playgroud)

我想为这两个接口注册这种类型.

container.RegisterType<IService1, MyService>(CreateLifetime());
container.RegisterType<IService2, MyService>(CreateLifetime());
Run Code Online (Sandbox Code Playgroud)

不幸的是,在解决之后,我有两个不同的实例.我试过使用共同的生命,但后来我收到了消息,我不能.

ono*_*nof 17

我经常写这个:

      .RegisterType<MyService>(CreateLifeTime())
      .RegisterType<IService1, MyService>()
      .RegisterType<IService2, MyService>();
Run Code Online (Sandbox Code Playgroud)

当然,使用TransientLifetimeManager,您仍将获得两个不同的MyService实例.

上面的代码与工作PerResolveLifetimeManager,PerResolveLifetimeManager,PerThreadLifetimeManager.