假设我有以下接口和类:
public interface IMyService
{
void DoSomething();
}
public class MagicInterfaceImplementor<T>
{
public T GetImplementation()
{
// Not relevant.
}
}
获取实例的唯一方法IMyService
是通过MagicInterfaceImplementor<IMyService>
. 我显然可以很容易地设置注入MagicInterfaceImplementor<IMyService>
:
Bind<MagicInterfaceImplementor<IMyService>().ToSelf();
[严格来说,在这个特定情况下这不是必需的,但我在实际情况下对绑定做了更多的事情。]
我的问题是 - 我如何绑定IMyService
?
我想我可以做到这一点,但我不确定这是不是最好的方法,因为我明确地调用了内核,这通常是不受欢迎的:
Bind<IMyService>().ToMethod(context => {
return ((MagicInterfaceImplementor<IMyService>)
context.Kernel.GetService(typeof(MagicInterfaceImplementor<IMyService>)))
.GetImplementation();
});
任何有关更合适的方法的建议将不胜感激。