0
public interface A
{
}
public interface B
{
}
public interface C : A, B
{
}
public class Foo : C
{
}
IUnityContainer unity = new UnityContainer();
unity.RegisterType<A, Foo>(new TransientLifetimeManager(), new InjectionFactory(container => { throw new Exception(); }));
unity.RegisterType<B, Foo>(new TransientLifetimeManager(), new InjectionFactory(container => { throw new Exception(); }));
unity.Resolve<A>(); //uses RegisterType<B, Foo> InjectionFactory
我期望Unity使用「A」InjectionFactory。當類註冊多個接口時,Unity解決上次註冊
有趣的,我會說這是一個錯誤,或至少不按預期工作。使用命名註冊似乎可以解決問題,但這可能不是您想要的。 –