Inheritance Unity未注入基类中定义的依赖项

Inheritance Unity未注入基类中定义的依赖项,inheritance,dependency-injection,unity-container,Inheritance,Dependency Injection,Unity Container,我正在将Unity 2.0集成到我的ASP.NET应用程序中(使用UnityPageHandlerFactory方法),并使一切工作正常,直到我尝试将其中一个依赖项移动到一个PageBase类中,该类将由所有页面共享。调用构建时从不设置此属性 我正在使用所描述的UnityPageHandlerFactory类,该类使用build(type,object)方法在请求时向每个页面注入依赖项。只要在声明的类型中定义了属性,就会注入属性。但基类中定义的属性永远不会设置 我还有别的事要做吗?在我看来,这应

我正在将Unity 2.0集成到我的ASP.NET应用程序中(使用UnityPageHandlerFactory方法),并使一切工作正常,直到我尝试将其中一个依赖项移动到一个PageBase类中,该类将由所有页面共享。调用构建时从不设置此属性

我正在使用所描述的UnityPageHandlerFactory类,该类使用build(type,object)方法在请求时向每个页面注入依赖项。只要在声明的类型中定义了属性,就会注入属性。但基类中定义的属性永远不会设置


我还有别的事要做吗?在我看来,这应该是自动的。

您能显示代码的相关部分吗?这就是我所拥有的,而且似乎有效:

    class InjectedClass
    {

    }

    class  MyBase
    {
            [Dependency]
            public InjectedClass Dependency { get; set; }
    }

    class MyClass : MyBase
    {

    }

    class Program
    {
            static void Main(string[] args)
            {
                    UnityContainer uc = new UnityContainer();
                    uc.RegisterType<InjectedClass>();

                    MyClass m = new MyClass();
                    uc.BuildUp(m);

            }
    }
class InjectedClass
{
}
类MyBase
{
[依赖性]
公共InjectedClass依赖项{get;set;}
}
类MyClass:MyBase
{
}
班级计划
{
静态void Main(字符串[]参数)
{
UnityContainer uc=新的UnityContainer();
uc.RegisterType();
MyClass m=新的MyClass();
uc.累积(m);
}
}

我还在asp.net应用程序中使用UnityPageHandlerFactory对此进行了测试,类似地,我可以看到InjectedClass被注入到我的页面中,尽管dependency属性位于基类上。

事实证明,我使用的是不同的构建方法重载,使用引用的示例中的重载修复了我的问题

我使用的是积层(对象),但它不起作用。当我切换到构建(类型、对象)时,一切都像一个符咒

我不知道为什么,但只能假设它与第一个重载中解析类型的方式有关,而不是显式提供类型时发生的情况

不管怎样,做这个小小的改变解决了我所有的问题。

你刚刚救了我一命!(好的,不是真的bacon,但是谢谢你发布问题和答案,你让我避免了一些严重的困惑!)
build(object)
方法可能不起作用,因为这个调用使用了推断:实际上你在这里调用的是
build(object)
,这要求unity使用对象类型来解决你的实例<代码>堆积(对象)也可以正常工作!