2016-09-03 4 views
0

Я пытаюсь зарегистрировать некоторые службы на базовом контроллере, которые будут доступны для каждого запроса.Служба всегда имеет значение null, используя lightinject

public interface IInstagramApiService 
{ 
} 

public interface IApiServiceConfiguration 
{ 
    string CacheKeyPrefix { get; } 
} 

Тогда у меня есть какие-то конкретные реализации этих

public class InstagramApiService : IInstagramApiService 
{ 
    IApiServiceConfiguration ApiServiceConfiguration { get; set; } 

    public InstagramApiService(IApiServiceConfiguration apiServiceConfiguration) 
    { 
     ApiServiceConfiguration = apiServiceConfiguration; 
    } 

} 

public class ApiServiceConfiguration : IApiServiceConfiguration 
{ 
    public string CacheKeyPrefix 
    { 
     get; 
     set; 
    } 
} 

Тогда у меня есть базовый контроллер, который я хочу, чтобы зарегистрировать эту услугу тоже;

public class BaseController : Controller 
{ 
    IInstagramApiService InstagramApiService { get; set; }   
} 

Итак, в моем приложении запускается эта инициализация;

var instagramApiServiceConfiguration = new ApiServiceConfiguration() { 
    CacheKeyPrefix = "The Cache Key Prefix", 
}; 

container.Register<IInstagramApiService>((factory) => new InstagramApiService(instagramApiServiceConfiguration), new PerRequestLifeTime()); 

Но когда я проверяю InstagramApiService на BaseController это всегда null. Каков правильный способ установить это, поэтому я всегда буду иметь InstagramApiService, готовый к использованию в моих контроллерах?

ответ

0

Оказывается, мне не хватает простого public модификатора на моем InstagramApiService внутри BaseController.

public class BaseController : Controller 
{ 
    public IInstagramApiService InstagramApiService { get; set; }   
} 

 Смежные вопросы

  • Нет связанных вопросов^_^