gpt4 book ai didi

ninject - 无论如何获取实例注入(inject)的类名(使用ninject)?

转载 作者:行者123 更新时间:2023-12-04 05:14:31 24 4
gpt4 key购买 nike

我将我的依赖项注入(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"));

这可以做到吗?

最佳答案

是的,这是可以做到的。您使用 IContext您在 ToMethod 中给出方法来获取您要注入(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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com