遷移到第 3.5 版AWS SDK for .NET - AWS SDK for .NET

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

遷移到第 3.5 版AWS SDK for .NET

AWS SDK for .NET 第 3.5 版將該開發套件的所有非架構變異支援轉換到 .NET Standard 2.0,藉此進一步標準化 .NET 體驗。視環境和程式碼基底而定,若要利用第 3.5 版功能,您可能需要執行某些遷移作業。

本主題說明第 3.5 版中的變更,以及您在從第 3 版遷移環境或程式碼時可能需要執行的作業。

第 3.5 版有什麼變更

以下說明 AWS 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檔案,如中所述參考第 3.5 版AWS SDK for .NET標準 2.0 從統一, 克林, 或 UWP。將程式碼移植到其中一個建議的程式碼基底之後,Unity 應用程式就可以存取該開發套件提供的所有服務。

因為統一支援 .NET 標準 2.0,AWSSDK.core開發套件第 3.5 版的套件不再具有 Unity 專用程式碼,包括某些較高階的功能。為了提供更好的過渡,所有的遺產Unity 程式碼可供參考aw/aws-sdk-unity-net GitHub 儲存庫。如果您發現有遺失的功能影響您的使用方式AWS與 Unity,您可以在https://github.com/aws/dotnet/issues

另請參閱Unity 支援的特殊考量

通用 Windows 平台 (UWP)

將 UWP 應用程式的目標鎖定於 16299 版或更新版本 (Fall Creators Update,2017 年 10 月發佈的 1709 版)。

Windows Phone 和 Silverlight

AWS SDK for .NET 第 3.5 版不支援這些平台,因為 Microsoft 不再主動開發這些平台。如需詳細資訊,請參閱下列內容:

舊式可攜式類別庫 (基於設定檔的 PCL)

考慮將程式庫的目標重新鎖定於 .NET Standard。如需詳細資訊,請參閱來自 Microsoft 的與可攜式類別程式庫的比較

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

第 3.5 版和 Amazon Cognito Sync 和 Amazon 行動分析方式的高階抽象概念AWS SDK for .NET。AWS AppSync是 Amazon Cognito Sync 的慣用替代產品。Amazon Pinpoint 是 Amazon Mobile Analytics 的首選替代品。

如果程式碼受到缺乏較高階程式碼所影響AWS AppSync和 Amazon Pinpoint,您可以在下列其中之一或兩者中記錄您關注的項目 GitHub 問題:https://github.com/aws/dotnet/issues/20https://github.com/aws/dotnet/issues/19。您還可以從以下獲取 Amazon Cognito 同步管理器和 Amazon Mobile Analytics 管理器庫 GitHub 儲存庫:aw/amazon-cognito-sync-manager-Netaw/aws-mobile-analytics-manager-Net

遷移同步程式碼

第 3.5 版AWS SDK for .NET支持 .NET 框架和 .NET 標準(通過 .NET 核心版本,如 .NET 核心 3.1,.NET 5 等)。符合 .NET 標準的 SDK 變體僅提供非同步方法,因此,如果您想要利用 .NET 標準,則必須變更同步程式碼,以便非同步執行。

下列程式碼片段說明如何將同步程式碼變更為非同步程式碼。這些片段中的程式碼可用來顯示 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}");