使用 lightinject 服务始终为 null

Service is always null using 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());

但是当我检查 BaseController 上的 InstagramApiService 时,它总是 null。正确的设置方法是什么,这样我就可以随时在我的控制器中使用 InstagramApiService

原来我在 BaseController 中的 InstagramApiService 上缺少一个简单的 public 修饰符。

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