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

使用C#调用DynamoDB ListTables方法遇访问权限级别错误求助

解决DynamoDB C#调用ListTables时的“inaccessible due to protection level”错误
  • 别搞静态调用:AmazonDynamoDBClient的ListTables是实例方法,得先创建客户端实例才能调用,不能直接用类名调用。比如正确写法是:

    // 先实例化客户端
    var client = new AmazonDynamoDBClient(你的访问密钥, 你的密钥, RegionEndpoint.你的区域);
    // 用实例调用方法
    var tableResult = client.ListTables();
    

    要是你写AmazonDynamoDBClient.ListTables(),编译器找不到对应的静态方法,就会抛出这个保护级别错误。

  • 核对SDK版本和命名空间:确保你装的是最新的AWSSDK.DynamoDBv2 NuGet包,代码顶部也得引入正确的命名空间:

    using Amazon.DynamoDBv2;
    using Amazon.DynamoDBv2.Model;
    

    老版本SDK可能存在方法访问权限的问题,更到稳定版基本能解决。

  • 检查客户端实例的访问权限:如果你的客户端实例是在私有类里定义的,或者实例本身是private成员,当前代码就没法访问它的方法。得把实例的访问修饰符改成public或者internal(同程序集内的话)。

  • 试试异步方法:新版SDK更推荐用异步的ListTablesAsync,同步方法在某些版本里可能被标记为内部或过时,换异步写法试试:

    var tableResult = await client.ListTablesAsync();
    

    记得把调用这个方法的函数标记为async。

从你贴的截图来看,大概率是静态调用错了或者实例访问权限不够,先查这俩点就行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 09:40:42