使用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
相关产品推荐
相关产品推荐

