ISitecoreService在其构造函数(web或master)中接受数据库名称作为字符串参数
ISitecoreService service = new SitecoreService("master"); //or
ISitecoreService service = new SitecoreService("web");
我是否有可能将数据库名称作为参数动态发送到IoC并解决它?例如,我发送web / master字符串参数并获取ISitecoreService的新实例
答案 0 :(得分:1)
喜欢这个吗?
container.Register<ISitecoreService>(() => new SitecoreService("master"));
答案 1 :(得分:0)
扩展史蒂文斯的回答,因为我有使用Sitecore的经验,我喜欢Simpleinjector。
如果您愿意,当您的应用程序使用配置工厂进行引导时,您可以访问Sitecore配置,访问网站站点配置并使用数据库属性。
var sites = Sitecore.Configuration.Factory.GetSiteInfoList();
var website = sites.Single(s => s.Name == "website");
ISitecoreService service = new SitecoreService(website.Database);
container.Register<ISitecoreService>(() => service);
这样,您的SitecoreService将使用网站配置中定义的相同数据库进行新建。