首页 > 解决方案 > 温莎城堡不会注入基本抽象类属性

问题描述

我遇到了一个特殊的问题。我有两个相互继承的抽象类。层次结构底部的那个有一些我想由温莎城堡注入的属性。但这实际上并没有发生,当从一个具体的类中调用时。这是示例。

public abstract class AbstractBaseClass
{
    public ISomeDependency DependencyNoOne {get;set;}
    protected AbstractBaseClass(bool someBoolean=false)
    {
        //... here I would expect 'DependencyNoOne' to be resolved when
        // called by the concrete class
    }
}

public abstract class AbstractClass: AbstractBaseClass
{
    protected AbstractClass(): base(true) {}
}

public class ConcreteClass : AbstractClass
{
    public ConcreteClass() : base() {}
}

请注意,依赖项是在容器中正确解决的,但似乎由于没有默认构造函数AbstractBaseClass(?实际上不知道,只是猜测),所以依赖项没有像我预期的那样在那里解决。ctor我在单元测试中使用的抽象类中还有其他s,为简洁起见省略了。

那么,有没有办法解决这一切呢?我应该以不同的方式处理它吗?我用的是温莎城堡 v3.3.0

提前致谢。

标签: c#dependency-injectioncastle-windsor

解决方案


推荐阅读