结构图错误代码202

时间:2012-01-03 17:39:08

标签: asp.net dependency-injection structuremap

我很习惯将结构图IoC与MVC结合使用,但最近不得不将其应用于传统的Web表单。

我通过提供 IoCContainer 类来完成此操作,该类具有 Configure()方法,例如以下处理注册表的方法。

    public static void Configure()
    {
        var log = LogManager.GetLogger(typeof (Global1));

        log.Debug("Initializing Container");
        /*Initialize IoC Container*/
        ObjectFactory.Initialize(x =>
                                     {
            x.For<ITokenService>().Use<TokenService>();
            x.For<ILocalizationService>().Use<LocalizationService>();

            log.Debug("Initializing Object Factory");
            /*Setup Property Injection*/
            x.SetAllProperties(p =>
                                   {
                                       p.OfType<ITokenService>();
                                       p.OfType<ILocalizationService>();
                                   });
        });

    }

我提供了一个包含 BuildUp()方法BasePage.cs的基本控件,如下所示。

    public BasePage()
    {
        var log = LogManager.GetLogger(typeof (Global1));
        log.Debug("Base Page Build Up");
        /*Inject Dependencies*/
        ObjectFactory.BuildUp(this);
    }

在我的一个类中,我使用自动装配将LocalizationService注入ILocalization属性。

我的本​​地计算机上的一切都运行得很好,但出于某种原因,当我将此代码部署到我们的登台服务器时,它给了我以下的StructureMap异常:

StructureMap异常代码:202 没有为PluginFamily定义的默认实例SuperShuttle.Web.Applications.Reservations.Interfaces.Services.ILocalizationService,SuperShuttle.Web.Applications.Reservations,Version = 3.6.27.0,Culture = neutral,PublicKeyToken = null

我不太确定在部署应用程序时它会发生什么变化,特别是因为我只是在复制和粘贴文件。

修改我在Global.asax的 Application_Start()中调用 IoCContainer.Configure(),如下所示:

 protected void Application_Start(object sender, EventArgs e)
    {

        log.Debug("In Application Start - Pre BuildUp");
        /*Configure Ioc Container*/
        IocConfigurator.Configure();
    }

0 个答案:

没有答案