【问题标题】:Service is always null using lightinject使用 lightinject 服务始终为空
【发布时间】:2016-09-03 11:57:15
【问题描述】:

我正在尝试在每个请求都可用的基本控制器上注册一些服务。

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

【问题讨论】:

    标签: light-inject


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-20
      • 2021-05-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多