我的主项目位于 Framework 4.7.2 中,该项目引用了 netStandard 库项目,该项目是 netstandard 2.0。
我需要 .Net Standard 项目中的“DbProviderFactories”。
喜欢:
System.Data.Common.DbProviderFactory fact = System.Data.Common.DbProviderFactories.GetFactory(providername);
我可以将 netStandard 项目版本更改为 2.1,其中包含 DbProviderFactories,但 netstandard 2.1 不与框架 4.7.2 一起使用
还有其他方法可以做到这一点吗?
根据 文档
DbProviderFactories
也存在于 .Net Framework 4.7.2。
因此,您可以使用依赖注入编写一些独立于框架的代码:
// code at netstandard 2.1 project
MethodThatRequiresFactory(Func<string, DbProviderFactory> getFactory)
{
...
var fact = getFactory(providername);
}
// code at .net472 project
MethodThatRequiresFactory(providername => System.Data.Common.DbProviderFactories.GetFactory(providername));