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

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

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

Amazon SDK for .NET的版本 3.5 通过将对所有开发工具包的非 Framework 变体的支持转换为 .NET Standard 2.0,进一步标准化了 .NET 体验。根据您的环境和代码库,要利用 3.5 版功能,您可能需要执行某些迁移工作。

本主题介绍版本 3.5 中的更改以及从版本 3 迁移环境或代码可能需要执行的工作。

版本 3.5 的更改内容

以下内容介绍Amazon SDK for .NET版本 3.5 中已更改或尚未更改的内容。

.NET Framework 和 .NET Core

对 .NET Framework 和 .NET Core 的支持没有更改。

Xamarin

(新的和现有的)Xamarin 项目必须指向 .NET Standard 2.0。请参阅 Xamarin.Forms 中的 .NET Standard 2.0 支持.NET 实现支持

Unity

Unity 应用程序必须使用 Unity 2018.1 或更高版本指向 .NET Standard 2.0 或 .NET 4.x 配置文件。有关更多信息,请参阅 .NET 配置文件支持。此外,如果您使用IL2CPP要生成,您必须通过添加link.xml文件,如中所述引用Amazon SDK for .NET来自 Unity、Xamarin 或 UWP 的标准 2.0. 将代码移植到推荐的代码库之一后,Unity 应用程序可以访问开发工具包提供的所有服务。

由于 Unity 支持 .NET 标准 2.0,AWSSDK.Core开发工具包版本 3.5 的 SDK版本 3.5 的程序包不再具有 Unity 特定的代码,包括一些更高级别的功能。为了提供更好的过渡,所有遗产Unity 代码可供参考aws/aws-sdk-unity-net GitHub 存储库。如果您发现缺少影响使用的功能Amazon通过 Unity,您可以通过以下地址提交功能请求https://github.com/aws/dotnet/issues.

另请参阅Unity 支持的特殊注意事项

通用 Windows 平台 (UWP)

将您的 UWP 应用程序指向版本 16299 或更高版本(秋季创建者更新,版本 1709,2017 年 10 月发布)。

Windows Phone 和 Silverlight

Amazon SDK for .NET的版本 3.5 不支持这些平台,因为 Microsoft 不再积极开发它们。有关更多信息,请参阅下列内容:

传统可移植类库(基于配置文件的 PCL)

考虑将您的库重定向到 .NET 标准。有关更多信息,请参阅 Microsoft 提供的可移植类库的比较

Amazon Cognito 同步管理器和Amazon Mobile Analytics 管理器

使和易于使用 Amazon Cognito Sync和Amazon Mobile Analytics的高级抽象已从的版本 3.5Amazon SDK for .NET.Amazon AppSync是Amazon Cognito Sync的首选替代品。Amazon Pinpoint 是Amazon Mobile Analytics 的首选替代品。

如果您的代码受到缺乏更高级别库代码的影响Amazon AppSync和 Amazon Pinpoint et,您可以记录您对以下一项或两项的兴趣 GitHub 问题:https://github.com/aws/dotnet/issues/20https://github.com/aws/dotnet/issues/19. 您还可以通过以下方式获取 Amazon Cognito 同步管理器和Amazon Mobile Analytics 管理器的库 GitHub 存储库:aws/amazon-cognito-sync-manager-NENEaws/aws-mobile-analytics-manager-NENE.

迁移同步代码

的版本 3.5Amazon SDK for .NET同时支持 .NET Framework 和 .NET Standard(通过 .NET Core 3.1、.NET 5 等.NET Core 版本)。符合 .NET 标准的 SDK 变体仅提供异步方法,因此,如果要利用 .NET Standard,则必须更改同步代码以使其异步运行。

以下代码段展示如何将同步代码更改为异步代码。这些代码段中的代码用于显示 Amazon S3 存储桶的数量。

原始代码调用ListBuckets.

private static ListBucketsResponse MyListBuckets() { var s3Client = new AmazonS3Client(); var response = s3Client.ListBuckets(); return response; } // From the calling function ListBucketsResponse response = MyListBuckets(); Console.WriteLine($"Number of buckets: {response.Buckets.Count}");

要使用此开发工具包的 3.5 版本,请调用ListBucketsAsync相反。

private static async Task<ListBucketsResponse> MyListBuckets() { var s3Client = new AmazonS3Client(); var response = await s3Client.ListBucketsAsync(); return response; } // From an **asynchronous** calling function ListBucketsResponse response = await MyListBuckets(); Console.WriteLine($"Number of buckets: {response.Buckets.Count}"); // OR From a **synchronous** calling function Task<ListBucketsResponse> response = MyListBuckets(); Console.WriteLine($"Number of buckets: {response.Result.Buckets.Count}");