繁体   English   中英

如何从NopCommerce v3.5的设置表中加载记录

[英]How to load records from Setting table of NopCommerce v3.5

我正在尝试使用NopCommerce v3.5,并尝试用Ninject v3.2替换Autofac。 我一直在搜索NopCommerce如何从“设置”表中加载记录,目前尚不清楚。 而且,如果有的话,我想使用Ninject加载设置。 感谢您的任何帮助。

这是Nop.web.Framework.DependencyRegistrar.cs中的示例代码

builder.RegisterType<SettingService>().As<ISettingService>()
    .WithParameter(ResolvedParameter.ForNamed<ICacheManager>("nop_cache_static"))
    .InstancePerLifetimeScope();
builder.RegisterSource(new SettingsSource());

我会尽力解释。

根据Autofac的文档RegisterSource允许您为不知道或已考虑的类注册工厂。 它将确实将类型与提供它们的规则绑定在一起。

这在这里如何适用?

当你需要一个类的实例,如LoggerSettings从容器中,autofac将检查所有你在不同的依赖性注册宣布nopCommerce有规则,系统会询问登记源:嘿! 我需要一个LoggerSettings实例,您对此有所了解吗? RegistrationSource对其进行检查并说:“是的,它实现了ISettings ,在这里您具有注入规则(在这种情况下,它是从通用存储库中检索设置实例的lambda),请保留它,下次您不需要询问”。 请注意,它将返回类型的实例化规则,而不是实例本身。

作为替代方案,也许您可​​以对所有程序集进行爬网,但是对于具有此类插件的大型系统而言,这将是一个痛苦。 您也可以注册每个特定的类,但是在这种情况下这是不可行的。

若要查看它的工作原理,请在SettingsSource的两个方法和委托内部设置几个断点,然后启动项目。

要使用Ninject进行此操作,您将需要复制此行为。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM