我想在我现在使用的一些遗留代码上使用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();
}