全部产品
弹性计算 会员服务 网络 安全 移动云 数加·大数据分析及展现 数加·大数据应用 管理与监控 云通信 阿里云办公 培训与认证 更多
存储与CDN 数据库 域名与网站(万网) 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网 智能硬件
阿里云SDK开发指南

使用C# SDK

更新时间:2018-02-24 19:08:19

安装SDK

阿里云C# SDK提供以下两种安装方式:

  • 添加DLL引用

    1. 阿里云SDK频道下载包含DLL文件的压缩包,解压获得DLL文件。

    2. 在Visual Studio的解决方案资源管理器中右键单击您的项目,然后单击引用

    3. 在弹出的菜单中单击添加引用

    4. 在弹出对话框中,单击浏览,选择之前下载的DLL文件,单击确定

  • 项目引入

    1. 执行以下命令,在GitHub中下载SDK的源代码。

      1. git clone https://github.com/aliyun/aliyun-openapi-net-sdk.git

      您可以在下载生成的文件夹中,找到很多名为aliyun-net-openapi-XXX的子文件夹,里面都包含\\*.csproj 文件,即C# 项目文件。例如,在 aliyun-net-openapi-ecs 子文件夹下,有一个aliyun-net-sdk-ecs.csproj文件。

    2. 在Visual Studio的界面中,右键单击您的解决方案。

    3. 单击添加 > 现有项目

    4. 在弹出的对话框中,选择刚才下载的源代码中相应的C# 项目文件(例如 aliyun-net-sdk-ecs.csproj),单击打开

    5. 右键单击您的项目,单击引用 > 添加引用

    6. 在弹出的对话框中单击项目,选中刚才打开的项目(例如 aliyun-net-sdk-ecs),然后单击确定

设置身份验证凭据

当使用阿里云SDK访问阿里云服务时,您需要提供阿里云账号进行身份验证。

目前,C# SDK支持以下几种身份验证方式:

验证方式 说明
AccessKey 使用AccessKey ID和AccessKey Secret访问。
StsToken 使用STS Token访问。
RamRoleArn 使用RAM子账号的AssumeRole方式访问。
EcsRamRole 在ECS实例上通过EcsRamRole实现免密验证。

本文以AccessKey为例说明如何设置凭据。为了保证您的账号安全,建议您使用RAM账号来访问阿里云服务。阿里云账号的AccessKey对拥有的资源有完全的权限。RAM账号由阿里云账号授权创建,仅有对特定资源限定的操作权限。参考创建AccessKey获取RAM账号的AccessKey。

使用AccessKey作为访问凭据,需要在初始化Client时设置凭证。

注意:确保包含AccessKey的代码不会泄漏(例如提交到外部公开的GitHub项目),否则将会危害您的阿里云账号的信息安全。

  1. IClientProfile clientProfile = DefaultProfile.GetProfile(
  2. "<your-region-id>", // 地域ID
  3. "<your-access-key-id>", // RAM账号的AccessKey ID
  4. "<your-access-key-secret>"); // RAM账号AccessKey Secret

发起调用

本文以ECS为例,介绍如何使用阿里云C# SDK发起请求。

  1. 新建一个默认客户端实例。

    1. DefaultAcsClient client = new DefaultAcsClient(clientProfile);
  2. 创建一个request,并赋值相关的请求参数。

    1. DescribeInstancesRequest request = new DescribeInstancesRequest();
    2. request.PageSize = 10;

    请求类的命名规范为${apiName}Request,其中${apiName}为API名称,例如 DescribeInstances, 在引入多个产品SDK时有可能存在Request类同名的情况,请注意按照命名空间区分。

  3. 发起调用并处理应答。

    1. DescribeInstancesResponse response = client.GetAcsResponse(request);

    正常情况下,应答中的所有字段,都会被反序列化到response中,您可以直接调用response.getXXX()来获得应答中的字段。

    1. System.Console.WriteLine(response.TotalCount);
本文导读目录