迁移到Amazon SDK for .NET的版本 3 - Amazon SDK for .NET
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

迁移到Amazon SDK for .NET的版本 3

本主题介绍了版本 3 的Amazon SDK for .NET中的更改以及如何将您的代码迁移到此版本的开发工具包。

关于Amazon SDK for .NET版本

Amazon SDK for .NET(最初于 2009 年 11 月发布)专为 .NET Framework 2.0 而设计。自发布以来,.NET 已通过 .NET Framework 4.0 和 .NET Framework 4.5 进行了改进,并且已增加了新的目标平台:WinRT 和 Windows Phone。

Amazon SDK for .NET版本 2 已更新,可以利用 .NET 平台的新功能并且面向 WinRT 和 Windows Phone。

Amazon SDK for .NET版本 3 已进行更新,使程序集实现模块化。

面向开发工具包的架构重新设计

整个版本 3 的Amazon SDK for .NET已进行重新设计来实现模块化。现在,每项服务均在各自的程序集中而非某个全局程序集中实现。您不再需要将整个Amazon SDK for .NET添加到应用程序。现在,您可以仅为应用程序使用的 Amazon 服务添加程序集。

重大更改

以下部分介绍了对版本 3 的Amazon SDK for .NET的更改。

删除了 AWSClientFactory

删除了 Amazon.AWSClientFactory 类。现在,要创建服务客户端,请使用服务客户端的构造函数。例如,要创建 AmazonEC2Client,请使用:

var ec2Client = new Amazon.EC2.AmazonEC2Client();

删除了 Amazon.Runtime.AssumeRoleAWSCredentials

删除了 Amazon.Runtime.AssumeRoleAWSCredentials 类,因为它位于核心命名空间中但依赖于 Amazon Security Token Service,并且开发工具包中已将其弃用一段时间。请改用 Amazon.SecurityToken.AssumeRoleAWSCredentials 类。

从 S3Link 中删除了 SetACL 方法

S3Link 类是 Amazon.DynamoDBv2 程序包的一部分,用于将作为 DynamoDB 项中的参考的对象存储在 Amazon S3 中。虽然这是一项有用的功能,但我们不需要为 DynamoDB 创建 Amazon.S3 程序包的编译依赖项。因此,我们从 S3Link 类简化了公开的 Amazon.S3 方法,并将 SetACL 方法替换为 MakeS3ObjectPublic 方法。要更好地控制对象的访问控制列表 (ACL),请直接使用 Amazon.S3 程序包。

删除过时的结果类

对于Amazon SDK for .NET中的大多数服务,操作将返回一个响应对象,该对象包含操作的元数据,例如请求 ID 和结果对象。拥有一个单独的响应和结果类是多余的,并且会让开发人员编写额外的代码。在版本 2 的Amazon SDK for .NET中,我们将结果类中的所有信息放入响应类中。我们还将结果类标记为过时以阻止对结果类的使用。在版本 3 的Amazon SDK for .NET中,我们删除了这些过时的结果类,这样有助于减小开发工具包的大小。

Amazon Config 部分更改

可以通过 App.configWeb.config 文件执行Amazon SDK for .NET的高级配置。您可以通过与以下内容类似的 <aws> 配置部分 (将引用开发工具包程序集名称) 来执行此操作。

<configuration> <configSections> <section name="aws" type="Amazon.AWSSection, AWSSDK"/> </configSections> <aws region="us-west-2"> <logging logTo="Log4Net"/> </aws> </configuration>

在版本 3 的Amazon SDK for .NET中,AWSSDK 程序集不再存在。我们将常见代码放入 AWSSDK.Core 程序集中。因此,您需要将对 App.configWeb.config 文件中的 AWSSDK 程序集的引用更改为对 AWSSDK.Core 程序集的引用,如下所示。

<configuration> <configSections> <section name="aws" type="Amazon.AWSSection, AWSSDK.Core"/> </configSections> <aws region="us-west-2"> <logging logTo="Log4Net"/> </aws> </configuration>

您也可以使用 Amazon.AWSConfigs 类操作配置设置。在Amazon SDK for .NET的版本 3 中,我们已将 DynamoDB 的配置设置从 Amazon.AWSConfigs 类更改为 Amazon.AWSConfigsDynamoDB 类。