如何在BenchmarkDotNet中使用DependencyInjection



我想在我现在使用的一些遗留代码上使用BenchmarkDotNet。它是用C#Net462编写的。这是一个大的、旧的、复杂的系统,我想在一些特定的类中对一些方法进行基准测试。这些类使用依赖注入,我不知道该怎么做。到目前为止,我看到的所有例子都没有使用任何依赖注入。

有人有什么想法或例子我可以看看吗?

非常感谢。

您需要在ctor或具有[GlobalSetup]属性的方法中创建依赖项注入容器,解析要进行基准测试的类型并将其存储在字段中。然后在基准测试中使用它,并在[GlobalCleanup]方法中处理DI容器。

伪码:

public class BenchmarksDI
{
private IMyInterface _underTest;
private IDependencyContainer _container;

[GlobalSetup]
public void Setup()
{
_container = CallYourCodeThatBuildsDIContainer();
_underTest = _container.Resolve<IMyInterface>();
}

[Benchmark]
public void MethodA() => _underTest.MethodA();

[GlobalCleanup]
public void Cleanup() => _container.Dispose();
}

相关内容

  • 没有找到相关文章

最新更新