共用方式為


EXTOBS0001:IResourceMonitor 已過時

Microsoft.Extensions.Diagnostics.ResourceMonitoring.IResourceMonitor從 .NET 9 開始,介面和相關 API 已過時。 這些 API 將在未來的版本中移除。 資源監控功能已被使用可觀察工具的更有效率的指標型方法所取代。

下列 API 已標示為已過時。 使用這些 API 會在編譯階段產生警告 EXTOBS0001

因應措施

不要使用 IResourceMonitor,而是切換至搭配可觀察工具使用資源監控指標。 以指標為基礎的方法提供相同的資源使用率資訊 (CPU、記憶體),但與 OpenTelemetry 等現代可觀測性系統整合得更好。

移轉範例

舊方法使用IResourceMonitor

services.AddResourceMonitoring();

// Inject and use IResourceMonitor
public class MyService
{
    private readonly IResourceMonitor _resourceMonitor;

    public MyService(IResourceMonitor resourceMonitor)
    {
        _resourceMonitor = resourceMonitor;
    }

    public void CheckResources()
    {
        var utilization = _resourceMonitor.GetUtilization(TimeSpan.FromSeconds(1));
        Console.WriteLine($"CPU: {utilization.CpuUsedPercentage}%");
        Console.WriteLine($"Memory: {utilization.MemoryUsedPercentage}%");
    }
}

使用指標的新方法:

services.AddResourceMonitoring();

// Configure metrics collection.
services.AddOpenTelemetry()
    .WithMetrics(builder =>
    {
        builder.AddMeter("Microsoft.Extensions.Diagnostics.ResourceMonitoring");
        builder.AddConsoleExporter();
    });

資源監控指標會自動發佈,並可由任何與 OpenTelemetry 相容的指標管道使用。 如需詳細資訊,請參閱 Microsoft.Extensions.Diagnostics.ResourceMonitoring 指標

隱藏警告

如果您必須使用過時的 API,您可以在程式碼或專案檔中隱藏警告。

若要僅抑制單一違規,請將預處理器指示詞新增至來源檔案以停用,然後重新啟用警告。

// Disable the warning.
#pragma warning disable EXTOBS0001

// Code that uses obsolete API.
// ...

// Re-enable the warning.
#pragma warning restore EXTOBS0001

若要隱藏 EXTOBS0001 專案中的所有警告,請將屬性新增至 <NoWarn> 專案檔。

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
   ...
   <NoWarn>$(NoWarn);EXTOBS0001</NoWarn>
  </PropertyGroup>
</Project>

如需詳細資訊,請參閱隱藏警告

另請參閱