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

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

迁移到Amazon SDK for .NET 3.5 版

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 文件来禁用代码剥离,如从 Unity、Xamarin 或 UWP 中引用Amazon SDK for .NET(Standard 2.0)中所述。将代码移植到推荐的代码库之一后,Unity 应用程序可以访问开发工具包提供的所有服务。

由于 Unity 支持 .NET Standard 2.0,因此开发工具包版本 3.5 的 AWSSDk.core 程序包不再具有 Unity 特定的代码,包括一些更高级别的功能。为了提供更好的转换,所有 legacy 的 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 Sync Manager 和 Amazon Mobile Analytics Manager

Amazon SDK for .NET 3.5 版中删除了便于使用 Amazon Cognito Sync 和 Amazon Mobile Analytics 的高级抽象。 Amazon AppSync是 Amazon Cognito Sync 的首选替代品。Amazon Pinpoint 是 Amazon Mobile Analytics 的首选替代品。

如果您的代码受到缺乏 Amazon AppSync 和 Amazon Pinpoint 的更高级别库代码的影响,您可以记录您对以下 GitHub 问题之一或这两个问题的兴趣:https://github.com/aws/dotnet/issues/20https://github.com/aws/dotnet/issues/19.。您还可以从以下 GitHub 存储库获取 Amazon Cognito Sync Manager 和 Amazon Mobile Analytics Manager 的库:aws/amazon-cognito-sync-manager-netaws/aws-mobile-analytics-manager-net

迁移同步代码

Amazon SDK for .NET 3.5 版同时支持 .NET Framework 和 .NET Standard(通过 .NET Core 3.1、.NET 5 等 .NET Core 版本)。符合 .NET Standard 的开发工具包版本仅提供异步方法,因此,如果您想利用 .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}");