使用 stament 在 dotnet 内循环

问题描述 投票:0回答:1

我有这个代码

public static void AddMeter(List<string> meter)
{
    using MeterProvider meterProvider = Sdk.CreateMeterProviderBuilder()
            .AddMeter("Meter.Errors")
            .AddMeter("Meter.Prompts")
            .AddPrometheusHttpListener(options => options.UriPrefixes = new string[] { "http://*:9184/" })
            .Build();
}

我想做的是通过迭代添加米(.AddMeter())。

所以像这样;

using MeterProvider meterProvider = Sdk.CreateMeterProviderBuilder()
        foreach (var meter in meters)
        {
            .AddMeter(meter)
        }
        .AddPrometheusHttpListener(options => options.UriPrefixes = new string[] { "http://*:9184/" })
        .Build();

正确的语法是什么?

.net loops using
1个回答
1
投票

你的意思是这样的吗?:

var builder = Sdk.CreateMeterProviderBuilder();
foreach (var meter in meters)
{
    builder = builder.AddMeter(meter);
}
using MeterProvider meterProvider = builder
    .AddPrometheusHttpListener(options => options.UriPrefixes = new string[] { "http://*:9184/" })
    .Build();

基本上,您只需将

Sdk.CreateMeterProviderBuilder()
的结果存储在变量中,在更新该变量的循环中调用
.AddMeter()
,然后对该变量的结果调用您需要的其余部分。像这样的流体 API 的语法没有什么特别之处,每个方法只是返回相同的更新对象,该对象可以像任何其他方法一样存储在变量中。

© www.soinside.com 2019 - 2024. All rights reserved.