首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是否有可以在调用对象构造函数之前注入属性的.net IoC?

是否有可以在调用对象构造函数之前注入属性的.net IoC?
EN

Stack Overflow用户
提问于 2013-03-07 19:54:18
回答 1查看 87关注 0票数 0

有人知道在调用构造函数之前注入属性的IoC容器吗?

我正在开发内部框架,我不想强迫人们从一个具有多个参数的构造函数中派生,使用我的基类(这是一些乏味的事情,比如调度器等等,如果我向基中添加更多内容,那么对于每个使用这个基类的人来说,更新代码都是一项艰巨的任务)。最好是在调用用户构造函数之前设置它们,这样我就不必使用独立的OnInitialised虚拟方法来完成依赖于这些属性的初始化了。

编辑

为了澄清,这里我想要的是属性注入相当于构建链中的字段初始值。

  1. 导出静态场
  2. 派生静态构造函数
  3. 导出实例字段
  4. 基静态场
  5. 基静态构造函数
  6. 基本实例字段
  7. 基本实例构造函数
  8. 导出实例构造函数

也就是说,在6.5或7.5左右(虽然这会有点奇怪)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-07 20:28:36

根据对问题的评论,这个模式似乎满足了我的需要,但是我需要使用TLS来避免服务定位器,在这个例子中(我需要控制以这种方式设置的属性的范围)。

代码语言:javascript
运行
复制
public class TestBase
{
    private SchedulerContext schedulerContext = InitScheduler();
    public SchedulerContext SchedulerContext
    {
        get { return this.schedulerContext; }
    }

    private static SchedulerContext InitScheduler()
    {
        return ServiceLocator.Current.GetInstance<SchedulerContext>();
    }

    public TestBase()
    {
        Console.WriteLine("Is Instantiated: {0}", this.SchedulerContext != null);           
    }
}

public class TestDerived : TestBase
{
    public TestDerived()
    {
        Console.WriteLine("Is Instantiated: {0}", this.SchedulerContext != null);
    }
}

这至少避免了对语言对象构造框架进行分解的恐惧:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15280491

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档