Код ошибки структуры карты 202 - PullRequest
1 голос
/ 03 января 2012

Я довольно привык использовать IoC для структурной карты с MVC, но недавно мне пришлось адаптировать его к устаревшим веб-формам.

Я сделал это, предоставив класс 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 = нейтральный,PublicKeyToken = null

Не совсем уверен, почему это изменится, когда я разверну свое приложение, особенно еслиЯ просто копирую и вставляю файлы.

Редактировать Я звоню IoCContainer.Configure () в Application_Start () в Global.asaxтакие как следующее:

 protected void Application_Start(object sender, EventArgs e)
    {

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