0

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

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());

但是当我检查它InstagramApiServiceBaseController它总是null。设置它的正确方法是什么,以便我始终可以InstagramApiService在我的控制器中使用?

4

1 回答 1

0

原来我在我的内部缺少一个简单的public修饰符。InstagramApiServiceBaseController

public class BaseController : Controller
{
    public IInstagramApiService InstagramApiService { get; set; }        
}
于 2016-09-03T15:33:45.630 回答