【问题标题】:Configure Structuremap IOC配置结构图 IOC
【发布时间】:2014-10-31 00:23:17
【问题描述】:

各位专家,我有以下结构课程

public class Apple:IApple
{
  public IBall _ball{get;private set}

  public Apple()
 {
  _ball=new Ball();
 }
}

Public class Cat:ICat
{
  private readonly IBall _ball;

  Public Cat(IBall ball)
  {
    this._ball=ball
  }
}

我正在如下配置我的结构图(未显示标准注册表和控制器注册表与控制器约定)

ObjectFactory.Container.Configure(cfg =>
        {
            cfg.For<IApple>().Use<Apple>();
            cfg.For<ICat>.Use<Cat>(); 

        });

当我在 Controller 中引用 ICat 时,如下所示

    private readonly ICat _cat;

    public HomeController(ICat cat)
    {
        this._cat = cat;
    }

我收到错误“未注册默认实例,无法自动确定类型 IBall”。

请各位高手给点建议。

【问题讨论】:

    标签: asp.net-mvc inversion-of-control structuremap


    【解决方案1】:

    你应该像这样注册IBall

    cfg.For<IBall>().Use(c =>   ((Apple)c.GetInstance<IApple>())._ball);
    

    【讨论】:

      猜你喜欢
      • 2013-11-13
      • 1970-01-01
      • 2023-04-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-09
      • 1970-01-01
      相关资源
      最近更新 更多