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

Azure文本分析C#代码报错:TextAnalyticsAPI构造函数因保护级别无法访问

解决TextAnalyticsAPI构造函数访问权限问题

问题原因

你碰到的这个错误——TextAnalyticsAPI.TextAnalyticsAPI(param DelegatingHandler[]) is inaccessible due to its protection level,本质是因为你用的旧版Azure Text Analytics SDK已经被微软弃用了。旧的TextAnalyticsAPI类的构造函数被设置为内部访问权限,外部代码根本没法直接实例化它。

具体解决方案

别慌,换成微软现在推荐的新版客户端就能搞定,步骤如下:

  1. 更新NuGet包
    先把你项目里的Microsoft.Azure.CognitiveServices.Language.TextAnalytics包卸载,安装最新版的Azure.AI.TextAnalytics NuGet包——这是当前官方维护的SDK版本。

  2. 替换客户端初始化代码
    把原来创建客户端的代码:

    ITextAnalyticsAPI client = new TextAnalyticsAPI();
    client.AzureRegion = AzureRegions.Westus;
    client.SubscriptionKey = "ENTER KEY HERE";
    

    改成新版的初始化方式:

    // 记得添加这两个命名空间
    using Azure.AI.TextAnalytics;
    using Azure;
    
    // 初始化客户端,替换成你的资源区域和密钥
    var client = new TextAnalyticsClient(
        new Uri("https://westus.api.cognitive.microsoft.com/"),
        new AzureKeyCredential("你的订阅密钥")
    );
    

    注意把westus换成你Azure资源所在的实际区域,密钥也填对。

  3. 调整API调用逻辑
    新版SDK的API方法和旧版不一样,得稍微改下调用代码,举几个核心功能的例子:

    • 语言检测:
      Console.WriteLine("===== LANGUAGE EXTRACTION ======");
      var docsToDetect = new List<string>
      {
          "This is a document written in English.",
          "Este es un document escrito en Español.",
          "这是一篇用中文写的文档"
      };
      
      foreach (var doc in docsToDetect)
      {
          var langResult = client.DetectLanguage(doc);
          Console.WriteLine($"文档内容: {doc} , 识别语言: {langResult.Value.Name}");
      }
      
    • 关键词提取:用ExtractKeyPhrases方法,传入文本即可获取关键词列表
    • 情感分析:用AnalyzeSentiment方法,返回的结果里包含情感分数和标签

补充说明

微软更新SDK是为了统一Azure服务的开发体验,新版的TextAnalyticsClient支持异步操作、更完善的错误处理,还符合Azure SDK的统一规范,比旧版好用多了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 06:50:46