我可以将依赖项注入(inject)到我的类中,但我想知道是否可以获得我要注入(inject)的类名?
例如:
Bind<ISomething>.ToMethod(c => new Something([GIVE INJECTING *TO* CLASS NAME]));
所以,如果我有:
public class Blah{
public Blah(ISomething something) { /**/ }
}
当注入(inject) Ninject 时,实际上会调用:
new Blah(new Something("Blah"));
这可以做到吗?
最佳答案
是的,这是可以做到的。您可以使用在 ToMethod
方法中提供的 IContext
来获取要注入(inject)的类型的名称,如下所示:
Bind<ISomething>().ToMethod(c => new Something(GetParentTypeName(c)));
它使用这个小辅助方法(也可以变成一个很好的扩展方法):
private string GetParentTypeName(IContext context)
{
return context.Request.ParentRequest.ParentRequest.Target.Member.DeclaringType.Name;
}
关于ninject - 是否有办法获取实例注入(inject)的类名(使用 ninject)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14459046/