簡體   English   中英

如何在 BenchmarkDotNet 中使用 DependencyInjection?

[英]How to use DependencyInjection in BenchmarkDotNet?

我想在我現在正在使用的一些遺留代碼上使用 BenchmarkDotNet。 它是用 C# Net462 編寫的。 這是一個龐大、古老且復雜的系統,我想在一些特定的 class 中對一些方法進行基准測試。 這些類使用依賴注入,我不確定我該怎么做。 到目前為止,我看到的所有示例都沒有使用任何依賴注入。

有沒有人有任何想法或例子我可以看看?

非常感謝。

您需要在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();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM