

第 4 版 (V4) 適用於 .NET 的 AWS SDK 已發行！

如需有關中斷變更和遷移應用程式的資訊，請參閱[遷移主題](https://docs.aws.amazon.com/sdk-for-net/v4/developer-guide/net-dg-v4.html)。

 [https://docs.aws.amazon.com/sdk-for-net/v4/developer-guide/net-dg-v4.html](https://docs.aws.amazon.com/sdk-for-net/v4/developer-guide/net-dg-v4.html)

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

# 遷移至 第 4 版 適用於 .NET 的 AWS SDK
<a name="net-dg-v4"></a>

 適用於 .NET 的 AWS SDK 第 4 版 (V4) 有大量 SDK 第 3 版 (V3) 的重大變更。本主題說明第 4 版中的重大變更，以及從 V3 遷移環境或程式碼時可能需要執行的可能工作。如需有關 SDK 中其他值得注意變更的其他資訊，請參閱下列資源：
+ GitHub 上的開發追蹤器問題：[https://github.com/aws/aws-sdk-net/issues/3362](https://github.com/aws/aws-sdk-net/issues/3362)。
+ 部落格文章[預覽 1 of 適用於 .NET 的 AWS SDK V4](https://aws.amazon.com/blogs/developer/preview-1-of-aws-sdk-for-net-v4/)。
+ 部落格文章[預覽 4 of 適用於 .NET 的 AWS SDK V4](https://aws.amazon.com/blogs/developer/preview-4-of-aws-sdk-for-net-v4/)。
+ 部落格文章 V[適用於 .NET 的 AWS SDK V40 的一般可用性。](https://aws.amazon.com/blogs/developer/general-availability-of-aws-sdk-for-net-v4-0/)

## .NET Framework
<a name="net-dg-v4-framework3.5"></a>

.NET Framework 3.5 目標已從 的 V4 中移除。 適用於 .NET 的 AWS SDK因此，開發套件不再支援 .NET Framework 3.5。此版本的 SDK 是針對 .NET Framework 4.7.2 編譯，並在 .NET 4.0 執行時間中執行。如需詳細資訊，請參閱[支援的平台](net-dg-supported-platforms.md#net-dg-platform-diff-netfx45)。

## 值類型
<a name="net-dg-v4-value-types"></a>

在用於提出請求和回應的類別中使用值類型的屬性已變更為使用 nullable 值類型。具有下列類型的屬性已變更：
+ `bool` 已變更為 `bool?` 
+ `double` 已變更為 `double?` 
+ `int` 已變更為 `int?` 
+ `float` 已變更為 `float?` 
+ `long` 已變更為 `long?` 
+ `Datetime` 已變更為 `Datetime?`

如需有關此變更的其他資訊，請參閱部落格文章 [ V4 的 適用於 .NET 的 AWS SDK 預覽 1](https://aws.amazon.com/blogs/developer/preview-1-of-aws-sdk-for-net-v4/)。

## 集合
<a name="net-dg-v4-collections"></a>

在用於提出請求和回應的類別中使用集合的屬性現在預設為 `null`。因此，您的程式碼需要先驗證集合不是 null，再嘗試使用它。例如：

```
var sqsClient = new AmazonSQSClient();
var listResponse = await sqsClient.ListQueuesAsync(new ListQueuesRequest());
if (listResponse.QueueUrls != null)
{
    foreach (string qUrl in listResponse.QueueUrls)
    {
        // Perform operations on each queue such as displaying all the attributes.
    }
}
```

將 `Amazon.AWSConfigs.InitializeCollections`設定為 ，即可還原初始化集合的 V3 行為`true`。對於想要在升級至 V4 之前嘗試此行為變更的使用者，此屬性也存在於 V3 中。 V4

如需有關此變更的其他資訊，請參閱部落格文章 [ V4 的 適用於 .NET 的 AWS SDK 預覽 1](https://aws.amazon.com/blogs/developer/preview-1-of-aws-sdk-for-net-v4/)。

## AWS Security Token Service (STS)
<a name="net-dg-v4-sts"></a>
+ **區域端點**

  使用依賴的登入資料提供者時 AWS STS，呼叫一律使用區域端點。這與軟體開發套件的 V3 不同，該開發套件`us-east-1`預設會在公有分割區中執行時使用該區域，無論設定的區域為何。
+ **`StsRegionalEndpointsValue`列舉**

  列舉已從 `StsRegionalEndpointsValue` [Amazon.Runtime ](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/NRuntime.html)命名空間中移除。任何使用該列舉的程式碼都應該移除。
+ **`STSAssumeRoleAWSCredentials` 類別**

  已取代的 STS 擔任角色登入資料提供者 `STSAssumeRoleAWSCredentials`已從 [Amazon.SecurityToken](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/SecurityToken/NSecurityToken.html) 命名空間中移除。請改用 [Amazon.Runtime](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/NRuntime.html) 的 [AssumeRoleAWSCredentials](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TAssumeRoleAWSCredentials.html)。

## 與 相關的變更 `ClientConfig`
<a name="net-dg-v4-clientconfig"></a>

[Amazon.Runtime.ClientConfig](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TClientConfig.html) 類別是服務用戶端組態類別的基本類別，例如 [AmazonS3Config](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/S3/TS3Config.html)。已對此基本類別進行下列變更。
+  **預設重試模式** 

  `RetryMode` 屬性預設為 `Standard`，而不是 `Legacy`。因此，該`Legacy`值已從 [Amazon.Runtime.RequestRetryMode](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TRequestRetryMode.html) 列舉中移除。
+  **預設組態模式** 

  `DefaultConfigurationMode` 屬性預設為 `Standard`，而不是 `Legacy`。因此，該`Legacy`值已從 [Amazon.Runtime.DefaultConfigurationMode](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TDefaultConfigurationMode.html) 列舉中移除。
+  **`ReadWriteTimeout` 屬性** 

  從除 .NET Framework 4.7.2 以外的所有目標移除過時`ReadWriteTimeout`屬性。

## AWSSDK.Extensions.NETCore.Setup NuGet 套件
<a name="net-dg-v4-netcore-setup"></a>

[AWSSDK.Extensions.NETCore.Setup](https://www.nuget.org/packages/AWSSDK.Extensions.NETCore.Setup/) NuGet 套件已更新，以緩解 SDK V3 中存在的問題，並使原生 AOT 的套件安全。這些變更摘要如下。如需詳細資訊，請參閱 GitHub 上 [aws-sdk-net](https://github.com/aws/aws-sdk-net) 儲存庫中的 [PR 3353](https://github.com/aws/aws-sdk-net/pull/3353)。
+ **`DefaultClientConfig` 類別**

  `DefaultClientConfig` 類別不再繼承自服務用戶端組態基礎類別 [Amazon.Runtime.ClientConfig](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TClientConfig.html)。來自 的相關屬性`ClientConfig`已在 `DefaultClientConfig` 上使用 nullable 值類型複寫。此變更可讓我們在將值複製到為服務用戶端建立的組態`DefaultClientConfig`時，偵測是否已在 上設定值。

  此變更的一個特定結果是 V4 `DefaultClientConfig.HttpClientFactory` 中不再提供。請改用 `AWSConfigs.HttpClientFactory`。如需詳細資訊，請參閱 [GitHub 問題 3790](https://github.com/aws/aws-sdk-net/issues/3790)。

  此變更的另一個結果是，已接受服務組態物件之`IConfiguration.GetAWSOptions`延伸方法的一般過載已移除。應該改用非一般過載，開發套件會自動處理填入服務特定的設定。如需詳細資訊，請參閱 [GitHub 問題 3866](https://github.com/aws/aws-sdk-net/issues/3866)。
+ **原生 AOT**

  建立使用 C\$1 11 靜態介面方法之服務用戶端的新機制已新增至套件。此變更不需要執行組裝類型載入來建立服務用戶端的執行個體，包括服務介面名稱的字串操作來運算與原生 AOT 不相容的服務用戶端類型。此變更僅適用於 .NET 8 和更新版本；較舊版本仍使用原始機制。

如需本指南中關於此套件的其他資訊，請參閱 [AWSSDK.Extensions.NETCore.Setup 和 IConfiguration](net-dg-config-netcore.md)。此套件的原始碼位於 GitHub，網址為 [https://github.com/aws/aws-sdk-net/tree/main/extensions/src/AWSSDK.Extensions.NETCore.Setup](https://github.com/aws/aws-sdk-net/tree/main/extensions/src/AWSSDK.Extensions.NETCore.Setup)。

## `CookieSigner` 和 `UrlSigner`
<a name="net-dg-v4-CookieSigner-UrlSigner"></a>

Amazon CloudFront 的 `CookieSigner`和 `UrlSigner`擴充功能已移至名為 [AWSSDK.Extensions.CloudFront.Signers](https://www.nuget.org/packages/AWSSDK.Extensions.CloudFront.Signers) 的個別擴充功能套件。此變更是支援 OpenSSL 3，並對 [BouncyCastle.Cryptography](https://www.nuget.org/packages/BouncyCastle.Cryptography) 採取相依性。

此套件的原始碼位於 GitHub，網址為 [https://github.com/aws/aws-sdk-net/tree/main/extensions/src/AWSSDK.Extensions.CloudFront.Signers](https://github.com/aws/aws-sdk-net/tree/main/extensions/src/AWSSDK.Extensions.CloudFront.Signers)。

## DateTime 與 UTC DateTime
<a name="net-dg-v4-utc-datetime"></a>

有些 V3 類別具有標示為「已棄用」或「淘汰」的 DateTime 屬性，以及替代的 UTC DateTime 屬性。在這些類別中，已移除過時的 DateTime 屬性，並將 UTC DateTime 屬性的名稱變更為 DateTime 屬性的原始名稱。

以下是已實作此變更之類別的一些範例。
+ [DescribeSpotPriceHistoryRequest](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/EC2/TDescribeSpotPriceHistoryRequest.html)：
  + 已移除過時`StartTime`屬性，且`StartTimeUtc`屬性的名稱已變更為「StartTime」。
  + 已移除過時`EndTime`屬性，且`EndTimeUtc`屬性的名稱已變更為「EndTime」。
+  [CreateFleetRequest](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/EC2/TCreateFleetRequest.html) 
  + 已移除過時`ValidFrom`屬性，且`ValidFromUtc`屬性的名稱已變更為「ValidFrom」。
  + 已移除過時`ValidUntil`屬性，且`ValidUntilUtc`屬性的名稱已變更為「ValidUntil」。

如果應用程式使用原始、已淘汰的 DateTime 屬性，則此變更可能會導致偏移時間。使用 UTC DateTime 屬性的程式碼會發生編譯時間錯誤。

## DateTime 剖析
<a name="net-dg-v4-datetime-parsing"></a>

DateTimeUnmarshaller 類別已更新。此類別已剖析並傳回 DateTime 字串做為本機時間。在某些情況下，由於先前的更新，這些值會轉換回 UTC，但並非一律如此。現在，未封送的 DateTime 字串會假設為 UTC，並將指定和取消封送為 UTC。此更新包含下列行為變更。

某些以 DateTime 類別為基礎的時間戳記屬性已剖析為當地時間。這些包括時間戳記的回應取消封送程式，並列出格式 `TimestampFormat.ISO8601`和 的時間戳記`TimestampFormat.RFC822`。DateTime 剖析已更新，改為傳回 UTC 時間。

## `ConvertFromUnixEpochSeconds` 和 `ConvertFromUnixEpochMilliseconds`
<a name="net-dg-v4-ConvertFromUnixEpoch"></a>

[ConvertFromUnixEpochSeconds](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Util/MAWSSDKUtilsConvertFromUnixEpochSecondsInt32.html) 和 [ConvertFromUnixEpochMilliseconds](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Util/MAWSSDKUtilsConvertFromUnixEpochMillisecondsInt64.html) 方法會將 Unix epoch 秒轉換為 DateTime 結構，並以本機時間而非 UTC 時間傳回 Unix Epoch 時間。這些方法現在會傳回 UTC 時間。

## 日誌
<a name="net-dg-v4-logging"></a>

您在開發套件中啟用記錄的方式已更新為 V4。記錄到主控台和系統診斷的運作方式與 V3 相同；也就是說，將 [AWSConfigs](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Amazon/TAWSConfigs.html) 類別的 `LoggingConfig.LogTo` 屬性設定為 `LoggingOptions.Console`或 `LoggingOptions.SystemDiagnostics`。的 [LoggingOptions](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Amazon/TAWSConfigs.html) 選項`log4net`已與 SDK 的內部邏輯一起移除，以使用反射連接至 的記憶體內執行個體`log4net`。

若要將開發套件的登入納入記錄架構，會使用個別的轉接器套件來連接開發套件與記錄架構。使用適用於 的 [AWSSDK.Extensions.Logging.Log4NetAdaptor](https://www.nuget.org/packages/AWSSDK.Extensions.Logging.Log4NetAdaptor) 套件`log4net`和適用於 的 [AWSSDK.Extensions.Logging.ILoggerAdaptor](https://www.nuget.org/packages/AWSSDK.Extensions.Logging.ILoggerAdaptor/#readme-body-tab) 套件`Microsoft.Extensions.Logging`。下列程式碼範例示範如何在這兩種情況下設定記錄。

### log4net 的範例組態
<a name="w2aac25c11c27b7b1"></a>

新增 `AWSSDK.Extensions.Logging.Log4NetAdaptor` NuGet 套件，並從 呼叫靜態`ConfigureAWSSDKLogging`方法`Log4NetAWSExtensions`。

```
using Amazon.DynamoDBv2;
using Amazon.Extensions.Logging.Log4NetAdaptor;
using log4net;

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config")]

Log4NetAWSExtensions.ConfigureAWSSDKLogging();
var logger = LogManager.GetLogger(typeof(Program));
```

### Microsoft.Extensions.Logging 的範例組態
<a name="w2aac25c11c27b7b3"></a>

新增 `AWSSDK.Extensions.Logging.ILoggerAdaptor` NuGet 套件，並從 `ILoggerFactory` 界面呼叫`ConfigureAWSSDKLogging`擴充功能方法。

```
var builder = WebApplication.CreateBuilder(args);

var app = builder.Build();

app.Services.GetRequiredService<ILoggerFactory>()
    .ConfigureAWSSDKLogging();
```

## 支援 HTTP 2
<a name="net-dg-v4-http2"></a>

新增對 HTTP 2 的支援，以啟用雙向串流。如需更多資訊，請參閱[支援 HTTP 2](http2-support.md)。

## 單一登入
<a name="net-dg-v4-sso"></a>

[SSOAWSCredentialsOptions](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TSSOAWSCredentialsOptions.html) 類別的 `SupportsGettingNewToken` 屬性預設值已從 變更為 `true` `false`。如果您有應用程式使用 [SSOAWSCredentials](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TSSOAWSCredentials.html) 類別來取得 SSO 登入資料，您可能需要將 `Options.SupportsGettingNewToken` 屬性設定為 `true`。如需此組態的範例，請參閱 中的[程式碼範例](sso-tutorial-app-only.md#sso-tutorial-app-only-code)[僅使用 .NET 應用程式的 SSO 教學課程](sso-tutorial-app-only.md)。如需詳細資訊，請參閱 [aws-sdk-net](https://github.com/aws/aws-sdk-net) GitHub 儲存庫中的 [PR 3737](https://github.com/aws/aws-sdk-net/pull/3737)。

## DynamoDB 的特定變更
<a name="net-dg-v4-ddb-specific"></a>

下列變更專屬於 Amazon DynamoDB。其中許多正在打破變更。

如需 第 V4中 DynamoDB 變更的其他資訊 適用於 .NET 的 AWS SDK，請參閱 V4 的[適用於 .NET 的 AWS SDK 部落格文章預覽 4V4](https://aws.amazon.com/blogs/developer/preview-4-of-aws-sdk-for-net-v4/)。

### 開啟以檢視項目
<a name="w2aac25c11c35b7b1"></a>

適用於 DynamoDB 的 SDK 中的 V4 變更解決了有關可測試性的一些問題，但主要以高階程式庫為中心：
+ 程式碼中名為 [DocumentModel](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/DynamoDBv2/NDynamoDBv2DocumentModel.html) 的 [.NET Document Model](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DotNetSDKMidLevel.html)。
+ 程式碼中名為 [DataModel](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/DynamoDBv2/NDynamoDBv2DataModel.html) 的 [.NET Object Persistence Model](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DotNetSDKHighLevel.html)。

如需這些程式設計模式的詳細資訊，請參閱本指南[DynamoDB](dynamodb-intro.md)中的 。

#### 文件模型：更新模擬`IAmazonDynamoDB`界面的例外狀況
<a name="w2aac25c11c35b7b1b9"></a>

在開發套件 V4 之前的文件模型中，如果[資料表](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/DynamoDBv2/TTable.html)是使用模擬 [IAmazonDynamoDB](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/DynamoDBv2/TIDynamoDB.html) 介面初始化，則會傳回 `NullReferenceException`。開發套件的 V4 `InvalidOperationException`會改為傳回。非同步`Table`方法應與模擬用戶端搭配使用，但當您從 呼叫同步方法時，仍可能會看到例外狀況`.NET/Core/Standard`。

如需此變更的詳細資訊，請參閱 GitHub [上的 PR 3388](https://github.com/aws/aws-sdk-net/pull/3388)。

#### 文件模型： `FromJson`和 `ToJson`方法
<a name="w2aac25c11c35b7b1c11"></a>

[文件](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/DynamoDBv2/TDocument.html)類別的 `FromJson`和 `ToJson`方法現在使用 `System.Text.Json`而非 LitJson 進行序列化，而且 LitJson 已從 SDK 的 V4 中移除。使用 的好處`System.Text.Json`是此剖析器支援使用 .NET `Decimal`類型，它支援數值浮點屬性的更高精確度。

#### 物件持久性模型： `DynamoDBOperationConfig`類別
<a name="w2aac25c11c35b7b1c13"></a>

在物件持久性模型中，已對共用的 [DynamoDBOperationConfig](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/DynamoDBv2/TDynamoDBOperationConfig.html) 類別進行下列變更：
+ 類別已分成新的操作特定類別，例如 [SaveConfig](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/DynamoDBv2/TSaveConfig.html)、[LoadConfig](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/DynamoDBv2/TLoadConfig.html) 和 [QueryConfig](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/DynamoDBv2/TQueryConfig.html)。採用的方法`DynamoDBOperationConfig`已標示為已過時，且未來可能會移除。

  如需此變更的詳細資訊，請參閱 GitHub 上的 [PR 3421](https://github.com/aws/aws-sdk-net/pull/3421)。
+ 已從 類別中移除 `MetadataCachingMode`和 `DisableFetchingTableMetadata` 屬性。這些屬性不包含在先前提及的新操作特定類別中。移除的屬性是在 [AWSConfigsDynamoDB](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Amazon/TAWSConfigsDynamoDB.html) 類別的全域`Context`屬性或 [DynamoDBContextConfig](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/DynamoDBv2/TDynamoDBContextConfig.html) 類別上指定的資料表層級設定。

  如需此變更的詳細資訊，請參閱 GitHub 上的 [PR 3422](https://github.com/aws/aws-sdk-net/pull/3422)。
+ 類別不再繼承自 [DynamoDBContextConfig](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/DynamoDBv2/TDynamoDBContextConfig.html) 類別。這可防止您將`DynamoDBOperationConfig`物件傳遞至 [DynamoDBContext](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/DynamoDBv2/TDynamoDBContext.html) 的建構函式，其中操作特定組態 （例如 `OverrideTableName`) 上的某些屬性不適用。

  如需此變更的詳細資訊，請參閱 GitHub 上的 [PR 3422](https://github.com/aws/aws-sdk-net/pull/3422)。

#### 物件持久性模型：多形性
<a name="w2aac25c11c35b7b1c15"></a>

[DynamoDBPolymorphicTypeAttribute](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/DynamoDBv2/TDynamoDBPolymorphicTypeAttribute.html) 類別已新增至物件持久性模型。此類別支援多態類型的序列化和還原序列化。如需詳細資訊，請參閱 GitHub [上的 PR 3643](https://github.com/aws/aws-sdk-net/pull/3643)。

#### 文件模型和物件持久性模型：模擬操作
<a name="w2aac25c11c35b7b1c17"></a>

已新增新的操作特定界面，允許客戶模擬 DynamoDB 操作。[IDynamoDBContext](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/DynamoDBv2/TIDynamoDBContext.html) 界面上的原廠方法已更新，以傳回新的界面。

如需此變更的詳細資訊，請參閱 GitHub 上的 [PR 3450](https://github.com/aws/aws-sdk-net/pull/3450)。
+ 物件持續性模型
  + 透過 `IBatchGet`和 `IMultiTableBatchGet` 介面的模擬`BatchGet`操作。
  + 透過 `IBatchWrite`和 `IMultiTableBatchWrite` 介面的模擬`BatchWrite`操作。
  + 透過 `ITransactGet`和 `IMultiTableTransactGet` 介面的模擬`TransactGet`操作。
  + 透過 `ITransactWrite`和 `IMultiTableTransactWrite` 介面的模擬`TransactWrite`操作。
  + 透過 `IAsyncSearch` 界面的模擬`Scan`和`Query`操作。
+ 文件模型
  + 透過 `ITable` 界面的模擬`Table`操作。
  + 透過 `ISearch` 界面的模擬`Scan`和`Query`操作。
  + 透過 `IDocumentTransactWrite`和 `IMultiTableDocumentTransactWrite` 介面的模擬`TransactWrite`操作。
  + 透過 `IDocumentTransactGet`和 `IMultiTableDocumentTransactGet` 介面的模擬`TransactGet`操作。
  + 透過 `IDocumentBatchWrite`和 `IMultiTableDocumentBatchWrite` 介面的模擬`BatchWrite`操作。
  + 透過 `IDocumentBatchGet`和 `IMultiTableDocumentBatchGet` 介面的模擬`BatchGet`操作。

#### 文件模型和物件持久性模型：支援原生 AOT
<a name="w2aac25c11c35b7b1c19"></a>

原生 AOT 的限制支援巢狀 .NET 類型。在某些情況下，.NET 編譯器的修剪元件可能會忽略這些巢狀類型。在這種情況下，您可能會收到例外狀況，例如："`System.InvalidOperationException: Type <type> is unsupported, it cannot be instantiated.`"

您可以藉由在程式碼路徑中新增 `DynamicDependency` 來解決此限制，通知修剪器有關子類型的相依性。儲存的最上層 .NET 類型的建構函式可能是 位置。下列程式碼範例示範如何使用 `DynamicDependency` 屬性：

```
[DynamoDBTable("TestTable")]
class TypeWithNestedTypeProperty
{
    [DynamicDependency(DynamicallyAccessedMemberTypes.All, typeof(SubType))]
    public TypeWithNestedTypeProperty()
    {

    }

    [DynamoDBHashKey]
    public string Id { get; set; }
    public string Name { get; set; }

    public SubType SubType { get; set; }
}

class SubType
{
    public string SubName { get; set; }
}
```

#### DynamoDBStreams
<a name="w2aac25c11c35b7b1c21"></a>

[DynamoDBStreams](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Streams.html) 已從 [AWSSDK.DynamoDB](https://www.nuget.org/packages/AWSSDK.DynamoDBv2) NuGet 套件中移除，並可在自己的套件 [AWSSDK.DynamoDBStreams](https://www.nuget.org/packages/AWSSDK.DynamoDBStreams) 中使用，並有自己的命名空間 `Amazon.DynamoDBStreams`。

#### 允許移除 `TableNamePrefix`值
<a name="w2aac25c11c35b7b1c23"></a>

您現在可以在個別操作層級的 [DynamoDBContextConfig](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Util/TDynamoDBContextConfig.html) 類別中移除 `TableNamePrefix` 屬性的值。如需此變更的詳細資訊，請參閱 GitHub 上的 [PR 3476](https://github.com/aws/aws-sdk-net/pull/3476)。

#### `RetrieveDateTimeInUtc` 屬性
<a name="w2aac25c11c35b7b1c25"></a>

對於 [DynamoDBContextConfig](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Util/TDynamoDBContextConfig.html) 類別， `RetrieveDateTimeInUtc` 屬性的預設值已變更為 `true`。

#### `DynamoDBContextTableNamePrefix` 屬性
<a name="w2aac25c11c35b7b1c27"></a>

從 [AWSConfigsDynamoDB](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Amazon/TAWSConfigsDynamoDB.html) 類別移除 `DynamoDBContextTableNamePrefix` 屬性。使用者應呼叫 `AWSConfigsDynamoDB.Context.TableNamePrefix`，而不是 

## EC2 特定的變更
<a name="net-dg-v4-ec2-specific"></a>

下列變更專屬於 Amazon EC2。大多數或全部都是重大變更。

### 開啟以檢視項目
<a name="w2aac25c11c39b5b1"></a>

#### `GetDecryptedPassword`
<a name="w2aac25c11c39b5b1b3"></a>

Amazon EC2 的`GetDecryptedPassword`擴充功能已移至名為 [AWSSDK.Extensions.EC2.DecryptPassword](https://www.nuget.org/packages/AWSSDK.Extensions.EC2.DecryptPassword) 的個別擴充功能套件。此變更是為了支援 OpenSSL 3，並對 [BouncyCastle.Cryptography](https://www.nuget.org/packages/BouncyCastle.Cryptography) 採取相依性。

此套件的原始碼位於 GitHub，網址為 [https://github.com/aws/aws-sdk-net/tree/main/extensions/src/AWSSDK.Extensions.EC2.DecryptPassword](https://github.com/aws/aws-sdk-net/tree/main/extensions/src/AWSSDK.Extensions.EC2.DecryptPassword)。

#### 支援 Amazon EC2 IMDSv1
<a name="w2aac25c11c39b5b1b5"></a>

執行個體中繼資料服務第 1 版 (IMDSv1) 的支援已移除。從 IMDS 擷取登入資料和其他中繼資料時，軟體開發套件的 V4 一律使用執行個體中繼資料服務第 2 版 (IMDSv2)。IMDSv2 如需 IMDS 的詳細資訊，請參閱[《Amazon EC2 使用者指南》中的使用 IMDS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-service.html)。 [Amazon EC2 ](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/)

#### 已變更或移除的程式設計元素
<a name="w2aac25c11c39b5b1b7"></a>
+ 已移除整個`Amazon.EC2.Import`命名空間和程式碼。
+ 已移除整個`Amazon.EC2.Util`命名空間和程式碼，其中包括用於查詢 Windows EC2 AMIs 公用程式。
+ 已將淘汰的 `IpRanges` 屬性從 [IpPermission](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/EC2/TIpPermission.html) 類別中移除。請改用 `Ipv4Ranges`或 `Ipv6Ranges` 屬性。
+ 下列已移除 [EC2InstanceMetadata](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Util/TEC2InstanceMetadata.html) 類別中的過時欄位：`EC2_METADATA_SVC`、`EC2_METADATA_ROOT`、`EC2_USERDATA_ROOT`、 `EC2_DYNAMICDATA_ROOT`和 `EC2_APITOKEN_URL`。

## S3 特定的變更
<a name="net-dg-v4-s3-specific"></a>

下列變更專屬於 Amazon S3。大多數或全部都是重大變更。

### 開啟以檢視項目
<a name="w2aac25c11c43b5b1"></a>

#### AWS 區域 us-east-1
<a name="w2aac25c11c43b5b1b3"></a>

為 `us-east-1`區域設定的 Amazon S3 服務用戶端無法再存取其他區域中的儲存貯體。必須使用為儲存貯體所在的區域設定的 S3 服務用戶端來存取儲存貯體。

如需此變更的其他資訊，請參閱 [V4 適用於 .NET 的 AWS SDK 的部落格文章預覽 V4](https://aws.amazon.com/blogs/developer/preview-4-of-aws-sdk-for-net-v4/)。

#### S3 加密用戶端
<a name="w2aac25c11c43b5b1b5"></a>

`Amazon.S3.Encryption` 命名空間中定義的 Amazon S3 加密用戶端已從 [AWSSDK.S3 ](https://www.nuget.org/packages/AWSSDK.S3)套件中移除。此用戶端已移至自己的套件，稱為 [Amazon.Extensions.S3.Encryption](https://www.nuget.org/packages/Amazon.Extensions.S3.Encryption)，其文件位於 [https://aws.github.io/amazon-s3-encryption-client-dotnet/api/Amazon.Extensions.S3.Encryption.html](https://aws.github.io/amazon-s3-encryption-client-dotnet/api/Amazon.Extensions.S3.Encryption.html)。如需遷移的相關資訊，請參閱 [S3 加密用戶端遷移 (V1 至 V2)](s3-encryption-migration-v1-v2.md)。如需 S3 加密的詳細資訊，請參閱《[Amazon S3 加密用戶端開發人員指南》中的](https://docs.aws.amazon.com/amazon-s3-encryption-client/latest/developerguide)[支援的加密演算法](https://docs.aws.amazon.com/amazon-s3-encryption-client/latest/developerguide/encryption-algorithms.html)。

#### 的 S3 標記指令 `CopyObject`
<a name="w2aac25c11c43b5b1b7"></a>

`TaggingDirective` 屬性已公開為 [CopyObjectRequest](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/S3/TCopyObjectRequest.html) 類別的公有屬性，由 `AmazonS3Client.CopyObject` 方法使用。此屬性對應至 [CopyObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html) 動作中定義的 Amazon S3 `x-amz-tagging-directive` 參數。

標記指令不會再自動設定為 COPY。如果開發人員未指定標記指令，S3 後端會自動假設它是 COPY，但如果開發人員明確將 屬性設定為 null，則完全不會設定該值。

#### S3 組態的 `UseArnRegion` 屬性
<a name="w2aac25c11c43b5b1b9"></a>

[Amazon.S3.AmazonS3Config ](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/S3/TS3Config.html)類別的 `UseArnRegion` 屬性已更新，因此`AWS_S3_USE_ARN_REGION`環境變數優先於共用 AWS `config`檔案中`s3_use_arn_region`的設定。如需這些變數和設定的詳細資訊，請參閱 SDK 和工具參考指南中的[設定](https://docs.aws.amazon.com/sdkref/latest/guide/settings-reference.html)參考。 [AWS SDKs ](https://docs.aws.amazon.com/sdkref/latest/guide/)

#### `CopyObject` 和 `CopyPart`方法的正斜線
<a name="w2aac25c11c43b5b1c11"></a>

Amazon S3 `CopyObject`和 `CopyPart`方法不會再修剪正斜線。`DisableTrimmingLeadingSlash` 屬性已從 [CopyObjectRequest](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/S3/TCopyObjectRequest.html) 和 [CopyPartRequest](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/S3/TCopyPartRequest.html) 類別中移除。

#### `DoesS3BucketExist...` 方法
<a name="w2aac25c11c43b5b1c13"></a>

已將淘汰的 `DoesS3BucketExist`和 `DoesS3BucketExistAsync`方法從 [AmazonS3Util](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/S3/TS3Util.html) 類別中移除，該類別實作 [ICoreAmazonS3](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TICoreS3.html) 介面。這些方法已移除，因為它們一律使用 HTTP。請改用 [DoesS3BucketExistV2](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/S3/MS3UtilDoesS3BucketExistV2IS3String.html) 和 [DoesS3BucketExistV2Async](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/S3/MS3UtilDoesS3BucketExistV2AsyncIS3String.html)。

#### SDK 一律使用 SigV4
<a name="w2aac25c11c43b5b1c15"></a>

第 4 版 適用於 .NET 的 AWS SDK 一律使用 AWS Signature 第 4 版 (SigV4) 簽署請求。此變更會導致下列相關變更：
+ [AWSConfigsS3](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Amazon/TAWSConfigsS3.html) 類別的 `UseSignatureVersion4` 屬性已移除。
+ [Amazon.Runtime.ClientConfig](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TClientConfig.html) 類別的 `SignatureVersion` 屬性已移除。此屬性僅供 Amazon S3 用於回溯相容性。
+ 已移除 `RegionEndpoint.Endpoint`類別。這包括 `SignatureVersionOverride` 屬性，用於覆寫 Amazon S3 的簽章版本。請改用服務特定的`client.DetermineServiceOperationEndPoint()`方法。
+ 已更新方法 [AmazonS3Util.PostUpload](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/S3/MS3UtilPostUploadS3PostUploadRequest.html) 和 [S3PostUploadSignedPolicy.GetSignedPolicy](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/S3/MS3PostUploadSignedPolicyGetSignedPolicyStringAWSCredentialsString.html)，以使用 SigV4。因此，`S3PostUploadSignedPolicy.GetSignedPolicyV4`方法已移除，因為 `GetSignedPolicy` 現在會執行相同的 函數。此外， `GetSignedPolicy` 已獲得區域端點的第三個參數。

#### `GetACL` 和 `PutACL`方法
<a name="w2aac25c11c43b5b1c17"></a>

[AmazonS3Client](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/S3/TS3Client.html) 類別的 `GetACL`和 `PutACL`方法已標記為已過時。若要存取這些方法的功能，請改用下列新方法：`GetBucketACL`、`GetObjectACL`、 `PutBucketACL`和 `PutObjectACL`。

#### 已移除過時的程式設計元素
<a name="w2aac25c11c43b5b1c19"></a>

Amazon S3 實作的許多程式設計元素已從 SDK 的 V4 中移除，包括列舉值、類型、方法、命名空間等。如果先前尚未涵蓋這些項目，以及您可以採取以適應其移除的潛在步驟，則會列出如下。
+ `DisableMD5Stream` 屬性已從 [TransferUtilityUploadRequest](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/S3/TTransferUtilityUploadRequest.html) 類別中移除。請改用 `DisableDefaultChecksumValidation` 屬性。

  此外， `CalculateContentMD5Header` 屬性已從 `TransferUtilityUploadRequest`類別中移除。此屬性已不再需要，因為 SDK 預設會計算檢查總和。
+ `ServerSideEncryptionMethod` 和 `ServerSideEncryptionKeyManagementServiceKeyId` 屬性已從 [CopyPartRequest](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/S3/TCopyPartRequest.html) 類別中移除。請改用 [InitiateMultipartUploadRequest](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/S3/TInitiateMultipartUploadRequest.html) 類別中名稱相同的屬性，這些屬性用於 [AmazonS3Client](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/S3/TS3Client.html) 類別的某些`InitiateMultipartUpload...`方法。
+ `Expires` 屬性已從 [GetObjectResponse](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/S3/TGetObjectResponse.html) 類別中移除。請改用 `ExpiresString` 屬性。字串可能不是有效的時間戳記格式，因此您的程式碼在轉換為 時應使用 `TryParse`方法`DateTime`。
+ 已將過時的 AWS 區域 識別符從 [S3Region](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/S3/TS3Region.html) 列舉中移除。
+ `Prefix` 屬性已從 [LifecycleRule](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/S3/TLifecycleRule.html) 類別中移除。請改用 `Filter` 屬性。

  此外， `NoncurrentVersionTransition`和 `Transition` 屬性已從 `LifecycleRule`類別中移除。請改用 `NoncurrentVersionTransitions`和 `Transitions`集合。
+ `Event` 屬性已從 [TopicConfiguration](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/S3/TTopicConfiguration.html) 類別中移除。請改用`Events`集合。
+ CalculateContentMD5Header 屬性。此屬性不再需要設定，因為 SDK 預設會計算檢查總和。
+ `Bucket` 屬性已從 [SelectObjectContentRequest](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/S3/TSelectObjectContentRequest.html) 類別中移除。請改用 `BucketName` 屬性。
+ `NumberOfUploadThreads` 屬性已從 [TransferUtilityConfig](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/S3/TTransferUtilityConfig.html) 類別中移除。請改用 `ConcurrentServiceRequests` 屬性。

## 已移除的程式設計元素
<a name="net-dg-v4-removed"></a>

已從 SDK 的 V4 中移除許多程式設計元素，包括列舉值、類型、方法、命名空間等。如果先前尚未涵蓋這些項目，以及您可以採取以適應其移除的潛在步驟，則會列出如下。

### 開啟以檢視項目
<a name="w2aac25c11c47b5b1"></a>

#### `Amazon.Auth.AccessControlPolicy.ActionIdentifiers` 命名空間
<a name="w2aac25c11c47b5b1b3"></a>

`Amazon.Auth.AccessControlPolicy.ActionIdentifiers` 命名空間已移除。這包括在 `IdentityandAccessManagementActionIdentifiers`類別中定義的 IAM 動作識別符。使用這些動作識別符的程式碼應變更為使用動作名稱的字串值。

如需詳細資訊，請參閱《[IAM 使用者指南](https://docs.aws.amazon.com/IAM/latest/UserGuide/)》中的 [從 JSON 建立 IAM 受管政策](iam-policies-create-json.md)和 [JSON 政策概觀](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#access_policies-json)。

#### `ClientConfig` 類別
<a name="w2aac25c11c47b5b1b7"></a>

[Amazon.Runtime.ClientConfig](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TClientConfig.html) 類別是服務用戶端組態類別的基本類別，例如 [AmazonS3Config](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/S3/TS3Config.html)。已從此類別中移除下列程式設計元素。
+ `DetermineServiceURL` 和 `DetermineDnsSuffix`方法已移除。請改用 服務用戶端的 `DetermineServiceOperationEndpoint`方法；例如，[AmazonS3Client.DetermineServiceOperationEndpoint](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/S3/MS3DetermineServiceOperationEndpointWebServiceRequest.html)。
+ `ReadEntireResponse` 屬性已移除。請改用下列其中一項：
  + [AWSConfigs.LoggingConfig](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Util/TLoggingConfig.html) 類別的 `LogResponses` 屬性。
  + 用戶端組態的 `LogResponse` 屬性，例如 [AmazonS3Config](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/S3/TS3Config.html)。

#### `Amazon.Runtime` 命名空間
<a name="w2aac25c11c47b5b1c11"></a>

[Amazon.Runtime](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/NRuntime.html) 命名空間已更新，如下所示：
+ 已將淘汰的`ECSTaskCredentials`類別從命名空間中移除。請改用 [GenericContainerCredentials](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TGenericContainerCredentials.html) 提供者，這也支援 [Amazon EKS Pod 身分](https://docs.aws.amazon.com/eks/latest/userguide/pod-identities.html)。
+ 已將淘汰的 `StoredProfileAWSCredentials`和 `StoredProfileCredentials`類別從命名空間中移除。請改用 Amazon.Runtime.CredentialManagement 命名空間的 [NetSDKCredentialsFile](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TNetSDKCredentialsFile.html) 或 [SharedCredentialsFile](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TSharedCredentialsFile.html) 類別。 [CredentialManagement](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/NRuntimeCredentialManagement.html) 
+ [SSOAWSCredentials](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TSSOAWSCredentials.html) 類別的淘汰`HasCachedAccessTokenAvailable`方法已從命名空間中移除。
+ 已將淘汰的`EnvironmentAWSCredentials`類別從命名空間中移除。請改用 [AppConfigAWSCredentials](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TAppConfigAWSCredentials.html) 類別。
+ 已將淘汰的`StoredProfileFederatedCredentials`類別從命名空間中移除。請改用 [FederatedAWSCredentials](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TFederatedAWSCredentials.html) 類別。
+ 已從命名空間中移除下列已淘汰的類別：`EnvironmentVariableAWSEndpointDiscoveryEnabled`、 `ProfileAWSEndpointDiscoveryEnabled`和 `FallbackEndpointDiscoveryEnabledFactory`。
+ 已將淘汰的 `UseSigV4` 屬性從 [AmazonWebServiceRequest](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TWebServiceRequest.html) 類別中移除。請改用 `SignatureVersion` 屬性。
+ `Amazon.Runtime.Internal.Util` 命名空間中的 `ProfileIniFile`類別具有稱為 的過載方法`TryGetSection`。不支援 的 `out` 參數的 方法版本`nestedProperties`已從 類別中移除。
+ 已移除`Amazon.Runtime.Internal.Auth`命名空間中已淘汰的`EventBridgeSigner`類別。
+ 已將過時的`Parameters`字典屬性從 [WebServiceRequestEventArgs](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TWebServiceRequestEventArgs.html) 類別中移除。請改用 `ParameteCollection` 屬性。

#### BouncyCastle
<a name="w2aac25c11c47b5b1c13"></a>

BouncyCastle 的來源副本已從 SDK 的 V4 中移除。

#### `StoredProfileSAMLCredentials` 類別
<a name="w2aac25c11c47b5b1c15"></a>

[Amazon.SecurityToken.SAML](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/SecurityToken/NSecurityTokenSAML.html) 命名空間中的淘汰`StoredProfileSAMLCredentials`類別已移除。請改用 [Amazon.Runtime ](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/NRuntime.html)命名空間中的 [FederatedAWSCredentials](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TFederatedAWSCredentials.html) 類別。

#### `AWSSDKUtils` 類別
<a name="w2aac25c11c47b5b1c17"></a>

下列方法已從 [AWSSDKUtils](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Util/TAWSSDKUtils.html) 類別中移除：`ProtectEncodedSlashUrlEncode`、 `ResolveResourcePath`和 `ConvertToUnixEpochMilliSeconds`。

#### `ProfileManager` 類別
<a name="w2aac25c11c47b5b1c19"></a>

已將淘汰的`ProfileManager`類別從 [Amazon.Util ](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Util/NUtil.html)命名空間中移除。請改用 [Amazon.Runtime.CredentialManagement](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/NRuntimeCredentialManagement.html)CredentialManagement 命名空間中的 [NetSDKCredentialsFile](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TNetSDKCredentialsFile.html) 或 [SharedCredentialsFile](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TSharedCredentialsFile.html) 類別。

#### `AWSConfigs` 類別
<a name="w2aac25c11c47b5b1c21"></a>

下列淘汰屬性已從 [AWSConfigs](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Amazon/TAWSConfigs.html) 類別中移除：`ResponseLogging`、 `Logging`和 `LogMetrics`。請改用 `LoggingConfig` 屬性。

#### `ConditionFactory` 類別
<a name="w2aac25c11c47b5b1c23"></a>

具有下列簽章的 方法已從 [ConditionFactory](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Auth/TConditionFactory.html) 類別中移除：`NewCondition(ConditionFactory.DateComparisonType, DateTime)`。請改用 [NewConditionUtc](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Auth/MConditionFactoryNewConditionUtcConditionFactoryDateComparisonTypeDateTime.html) 方法。

#### Amazon CloudFront 公用程式
<a name="w2aac25c11c47b5b1c25"></a>

已移除過時的`Amazon.CloudFront.Util`命名空間和`AmazonCloudFrontUtil`類別。

#### AWS IoT
<a name="w2aac25c11c47b5b1c27"></a>

在 [ListPrincipalThingsResponse](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/IoT/TListPrincipalThingsResponse.html) 類別中，`NextToken`覆寫的舊版自訂已移除，有利於分頁。

#### AWS Lambda
<a name="w2aac25c11c47b5b1c29"></a>

[AmazonLambdaClient](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Lambda/TLambdaClient.html) 類別的下列`Invoke...`方法已移除，因為名稱令人混淆。
+ 具有下列簽章的 V3 方法已移除：`InvokeAsyncResponse InvokeAsync(InvokeAsyncRequest)`。這是 SDK V3 中的同步方法。請改用 `InvokeResponse Invoke(InvokeRequest)`（用於同步處理） 或 `Task InvokeAsync(InvokeRequest, CancellationToken)`（用於非同步處理）。
+ 具有下列簽章的 V3 方法已移除：`Task InvokeAsyncAsync(InvokeAsyncRequest, CancellationToken)`。這是 SDK V3 中的非同步方法。請改用 `Task InvokeAsync(InvokeRequest, CancellationToken)`。

#### Amazon SageMaker 執行期
<a name="w2aac25c11c47b5b1c31"></a>

已移除已淘汰的 [PayloadPart](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/SageMakerRuntime/TPayloadPart.html) 類別建構函數。