You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用TelemetryConfiguration实例触发Sonar废弃API告警问题求助

解决TelemetryConfiguration构造函数过时的Sonar告警

告警信息

'TelemetryConfiguration.TelemetryConfiguration(string)' 已过时: '基于InstrumentationKey的全局数据 ingestion 已被弃用。请使用默认构造函数并手动设置TelemetryConfiguration.ConnectionString。' [SofyUtilCommon]csharp(CS0618)

原有代码实现

public class AppInsightsService
{
     public static string InstrumentationKey => 
     AppSettings.ApplicationInsights.InstrumentationKey;

    /// <summary>应用程序的TelemetryConfiguration</summary>
    public static TelemetryConfiguration Configuration
    {
        get => configuration ??= new TelemetryConfiguration(InstrumentationKey);
        set => configuration = value;
    }
}

解决方案

该告警是因为基于InstrumentationKey的TelemetryConfiguration构造函数已被官方弃用,需改用默认构造函数并手动配置ConnectionString。

修改后的代码如下:

public class AppInsightsService
{
    // 优先使用配置文件中已有的ConnectionString配置项
    public static string ConnectionString => 
    AppSettings.ApplicationInsights.ConnectionString;

    /// <summary>应用程序的TelemetryConfiguration</summary>
    public static TelemetryConfiguration Configuration
    {
        get => configuration ??= CreateTelemetryConfiguration();
        set => configuration = value;
    }

    private static TelemetryConfiguration CreateTelemetryConfiguration()
    {
        var config = new TelemetryConfiguration();
        config.ConnectionString = ConnectionString;
        return config;
    }
}

补充说明

如果当前仅持有InstrumentationKey,可将其转换为ConnectionString格式:InstrumentationKey=你的密钥值,直接赋值给ConnectionString属性即可。

内容的提问来源于stack exchange,提问作者Ashish Khokhariya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 08:25:17