C# 是Unity中的替代项,如Ninject所具有的:Global.Inject(this)

C# 是Unity中的替代项,如Ninject所具有的:Global.Inject(this),c#,ninject,unity-container,C#,Ninject,Unity Container,我使用Unity,我有一个类: public class A { [Dependency] IRepository<User> User { get; set; } } 提前谢谢你 container.build()听起来与您试图实现的目标类似。但我强烈建议不要在构造函数中使用此功能,除非您必须这样做。在我看来,ASP.NET webforms大概是唯一有意义的场景,因为您自己无法控制页面对象的实例化,必须接受框架决定扔给您的东西 build应该保留给外部框架或应用

我使用Unity,我有一个类:

public class A
{
    [Dependency]
    IRepository<User> User { get; set; }
}
提前谢谢你

container.build()
听起来与您试图实现的目标类似。但我强烈建议不要在构造函数中使用此功能,除非您必须这样做。在我看来,ASP.NET webforms大概是唯一有意义的场景,因为您自己无法控制
页面
对象的实例化,必须接受框架决定扔给您的东西


build
应该保留给外部框架或应用程序提供给您的“第三方”对象(您同样无法控制对象实例化),并且您永远不应该直接调用业务或服务对象内部的容器(请参阅)。

也许您应该详细说明什么是
Global.Inject(此)
有什么问题吗?这是一个注册当前实例的调用(听起来毫无用处),还是类似于对Unity的
container.build(this)
的调用,它只在一组非常有限的用例中有意义,比如在“classic”ASP.NET webforms中,您根本没有其他方法来使用DI。Global.Inject(这)是用于初始化的(在本例中)用户对象。您还需要properties@DanielMarbach在哪种情况下,当您使用Kernel.Inject时,属性是否需要
InjectAttribute
public class B
{
    public B()
    {
        /* In Ninject I would use */
        /* Global.Inject(this) */
        /* Is it possible to do in Unity? */
    }
}