小编Jos*_*VdM的帖子

在.NET Core 2.1中安装.NET SQL Client后,DbProviderFactories.GetFactoryClasses不返回任何结果

我正在将一个库移植到.NET Core 2.1,因为它支持DbProviderFactory.在大多数情况下它已经很好 - 它编译,但运行时我得到一个错误:

System.ArgumentException:'在已注册的.NET数据提供程序列表中找不到指定的不变名'System.Data.SqlClient'.

我曾经DbProviderFactories.GetFactoryClasses()检查过是否安装了任何提供程序,并且似乎没有(结果表中有0行).

所以我想我的问题是,如何为.NET Core安装数据提供程序?我在机器上安装了.NET Framework 4.5,它正在挑选数据提供程序而没有任何问题.我不想System.Data.SqlClient作为本地项目的Nuget 安装,因为这会添加一个依赖性,使得DbProviderFactory无关紧要.也就是说,我试图安装System.Data.SqlClient在一个使用我的库作为测试的项目中,但它仍然没有被选中.

c# dbproviderfactories .net-core

7
推荐指数
2
解决办法
4813
查看次数

不包含测试用例过滤器在 VSTest 16.6.1 中不起作用

根据官方的 TestCase 文档,您可以在 TestCase 过滤器中使用“不包含”(!~)过滤器。

我正在尝试在 Azure Devops 管道中使用此过滤器,但根据运行该管道时出现的错误,该过滤器不受支持:

##[error]Incorrect format for TestCaseFilter Error: Invalid Condition 'FullyQualifiedName!~DSN'. Specify the correct format and try again. Note that the incorrect format can lead to no test getting executed.
Run Code Online (Sandbox Code Playgroud)

此功能是在 16.0 预览版中添加的。管道使用 VSTest 16.6.1,如输出中的这些行所示:

C:\agent\_work\_tool\VsTest\16.6.1\x64\tools\net451\Common7\IDE\Extensions\TestPlatform\vstest.console.exe "@C:\agent\_work\_temp\xulnpcmgdnx.tmp"
Microsoft (R) Test Execution Command Line Tool Version 16.6.1
Run Code Online (Sandbox Code Playgroud)

但是,仍然不支持“不包含”运算符。

我试过了:

  1. 使用 VSTest (16.7) 的预览版
  2. 在我的 VsTest 管道任务中使用“Visual Studio 2019”作为测试平台版本(而不是直接使用 VSTest 版本)
  3. 使用包含“不包含”测试过滤器的发布之前的 VSTest 版本,显示与预期完全相同的错误

我不知所措,是否还有其他我不知道的依赖?这可能是微软方面的问题/错误吗?任何帮助或指示将不胜感激。

.net vstest azure-devops azure-pipelines

6
推荐指数
1
解决办法
550
查看次数

是否有必要使用构造函数注入检查空值?

我正在使用.NET Core构造函数注入。在一位同事的代码审查中,他提出了一个问题,即我是否应该检查控制器中注入的依赖项的空值。

由于该框架负责创建服务的实例,因此在我看来,它将处理所有错误,并且永远不会将空值依赖项传递给构造函数。不过,我没有任何事实证据,因此我想知道是否有必要进行null检查。

例如,是否应该检查以下代码中的“ myService”是否为null?(假设代码配置为使用DI)

public class MyController
{
    private readonly IMyService _myService;

    public MyController(IMyService myService) 
    {
        _myService = myService;
    }
}
Run Code Online (Sandbox Code Playgroud)

c# dependency-injection constructor-injection null-check .net-core

1
推荐指数
2
解决办法
1095
查看次数