

¡Se AWS SDK para .NET ha publicado la versión 4 (V4) del\$1

Para obtener información sobre los cambios más importantes y la migración de sus aplicaciones, consulte el [tema sobre migración](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)

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Migración a la versión 4 del AWS SDK para .NET
<a name="net-dg-v4"></a>

La AWS SDK para .NET versión 4 (V4) presenta un número significativo de cambios importantes con respecto a la versión 3 (V3) del SDK. En este tema se describen los cambios más importantes de la versión 4 y los posibles trabajos que podría ser necesario realizar para migrar el entorno o el código desde la V3. Para obtener información adicional sobre otros cambios importantes en el SDK, consulta los siguientes recursos:
+ El número del rastreador de desarrollo en GitHub:. [https://github.com/aws/aws-sdk-net/issues/3362](https://github.com/aws/aws-sdk-net/issues/3362)
+ La entrada del blog [Vista previa 1 de la AWS SDK para .NET V4](https://aws.amazon.com/blogs/developer/preview-1-of-aws-sdk-for-net-v4/).
+ La entrada del blog [Vista previa 4 de la AWS SDK para .NET V4](https://aws.amazon.com/blogs/developer/preview-4-of-aws-sdk-for-net-v4/).
+ La entrada del blog [Disponibilidad general de la AWS SDK para .NET V4.0](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>

El objetivo de.NET Framework 3.5 se ha eliminado de la versión 4 del AWS SDK para .NET. Como resultado, el SDK ya no es compatible con .NET Framework 3.5. Esta versión del SDK está compilada con .NET Framework 4.7.2 y se ejecuta en el entorno de ejecución .NET 4.0. Para obtener más información, consulte [Plataformas compatibles.](net-dg-supported-platforms.md#net-dg-platform-diff-netfx45)

## Tipos de valor
<a name="net-dg-v4-value-types"></a>

Las propiedades que utilizan tipos de valores en las clases que se utilizan para realizar solicitudes y respuestas se han modificado para utilizar tipos de valores que admiten valores nulos. Se han modificado las propiedades con los siguientes tipos:
+ `bool`se ha cambiado a `bool?` 
+ `double`se ha cambiado a `double?` 
+ `int`se ha cambiado a `int?` 
+ `float`se ha cambiado a `float?` 
+ `long`se ha cambiado a `long?` 
+ `Datetime`se ha cambiado a `Datetime?`

Para obtener información adicional sobre este cambio, consulte la entrada del blog [Vista previa 1 de la AWS SDK para .NET versión 4](https://aws.amazon.com/blogs/developer/preview-1-of-aws-sdk-for-net-v4/).

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

Las propiedades que utilizan colecciones en las clases que se utilizan para realizar solicitudes y respuestas ahora están predeterminadas como`null`. Como resultado, el código debe comprobar que una colección no es nula antes de intentar usarla. Por ejemplo:

```
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.
    }
}
```

El comportamiento de la V3 al inicializar las colecciones se puede restaurar `Amazon.AWSConfigs.InitializeCollections` configurando en. `true` Esta propiedad también existe en la versión 3 para los usuarios que desean probar este cambio de comportamiento antes de actualizar a la versión 4.

Para obtener más información sobre este cambio, consulte la entrada del blog [Vista previa 1 de la versión AWS SDK para .NET 4](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>
+ **El punto final regional**

  Cuando se utilizan proveedores de credenciales que dependen de ellos AWS STS, las llamadas siempre utilizan el punto final regional. Esto difiere de la versión 3 del SDK, que utilizaba la `us-east-1` región de forma predeterminada cuando se ejecutaba en la partición pública, independientemente de la región configurada.
+ **La enumeración `StsRegionalEndpointsValue`**

  La `StsRegionalEndpointsValue` enumeración se eliminó del espacio de nombres [Amazon.Runtime](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/NRuntime.html). Se debe eliminar cualquier código que utilice esa enumeración.
+ **La `STSAssumeRoleAWSCredentials`clase**

  [El obsoleto STS Assumse rol de proveedor de credenciales`STSAssumeRoleAWSCredentials`,, se ha eliminado de Amazon. SecurityToken](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/SecurityToken/NSecurityToken.html)espacio de nombres. En su lugar, [AssumeRoleAWSCredentials](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TAssumeRoleAWSCredentials.html)utilícelo desde [Amazon.Runtime](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/NRuntime.html).

## Cambios relacionados con `ClientConfig`
<a name="net-dg-v4-clientconfig"></a>

El [Amazon.Runtime. ](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TClientConfig.html)ClientConfig[es la clase base de las clases de configuración de clientes de servicio, como AmazonS3Config.](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/S3/TS3Config.html) Se realizaron los siguientes cambios en esta clase base.
+  **Modo de reintento predeterminado** 

  El valor predeterminado `RetryMode` de la propiedad es `Standard` en lugar de. `Legacy` Como resultado, el `Legacy` valor se ha eliminado de [Amazon.Runtime. RequestRetryMode](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TRequestRetryMode.html)enumeración.
+  **Modo de configuración predeterminado** 

  El valor predeterminado de la `DefaultConfigurationMode` propiedad es `Standard` en lugar de`Legacy`. Como resultado, el `Legacy` valor se ha eliminado de [Amazon.Runtime. DefaultConfigurationMode](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TDefaultConfigurationMode.html)enumeración.
+  **¿`ReadWriteTimeout`La propiedad?** 

  La `ReadWriteTimeout` propiedad obsoleta se eliminó de todos los destinos excepto de .NET Framework 4.7.2.

## Las AWSSDK .Extensions. NETCoreEl paquete .Setup NuGet
<a name="net-dg-v4-netcore-setup"></a>

Las [AWSSDK.Extensions. NETCore NuGet El paquete .Setup](https://www.nuget.org/packages/AWSSDK.Extensions.NETCore.Setup/) se ha actualizado para solucionar los problemas que estaban presentes en la versión 3 del SDK y para que el paquete sea seguro para el AOT nativo. Estos cambios se resumen a continuación. Para obtener información detallada, consulte el [PR 3353](https://github.com/aws/aws-sdk-net/pull/3353) en el [aws-sdk-net](https://github.com/aws/aws-sdk-net)repositorio de. GitHub
+ **La `DefaultClientConfig`clase**

  La `DefaultClientConfig` clase ya no se hereda de la clase base de configuración del cliente de servicio [Amazon.Runtime. ClientConfig](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TClientConfig.html). Las propiedades relevantes de se `ClientConfig` han replicado `DefaultClientConfig` utilizando tipos de valores que aceptan valores nulos. Este cambio nos permite detectar cuándo se ha establecido un valor al copiar los valores a la configuración que `DefaultClientConfig` se está creando para el cliente del servicio.

  Un resultado concreto de este cambio es que ya no `DefaultClientConfig.HttpClientFactory` está disponible en la versión 4. En su lugar, use `AWSConfigs.HttpClientFactory`. Para obtener información adicional, consulte el [GitHub número 3790](https://github.com/aws/aws-sdk-net/issues/3790).

  Otro resultado de este cambio es que se han eliminado las sobrecargas genéricas del método de `IConfiguration.GetAWSOptions` extensión que aceptaba un objeto de configuración de servicio. En su lugar, se debe utilizar la sobrecarga no genérica y el SDK se encargará automáticamente de rellenar los ajustes específicos del servicio. [Para obtener información adicional, consulta el número 3866. GitHub ](https://github.com/aws/aws-sdk-net/issues/3866)
+ **AOT nativo**

  Se ha agregado al paquete un nuevo mecanismo para crear clientes de servicio que utiliza los métodos de interfaz estática de C\$1 11. Este cambio elimina la necesidad de realizar cargas de tipo ensamblado para crear instancias de clientes de servicio, incluida la manipulación de cadenas del nombre de la interfaz de servicio para calcular el tipo de cliente de servicio, lo que no es compatible con el AOT nativo. Este cambio solo está disponible para .NET 8 y versiones posteriores; las versiones anteriores siguen utilizando el mecanismo original.

Para obtener información adicional sobre este paquete en esta guía, consulte[AWSSDK.Extensiones. NETCore.Configuración y IConfiguration](net-dg-config-netcore.md). El código fuente de este paquete está GitHub en[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` y `UrlSigner`
<a name="net-dg-v4-CookieSigner-UrlSigner"></a>

Las `UrlSigner` extensiones `CookieSigner` y de Amazon se CloudFront han trasladado a un paquete de extensiones independiente denominado [AWSSDK.Extensions. CloudFront.Firmantes.](https://www.nuget.org/packages/AWSSDK.Extensions.CloudFront.Signers) [Este cambio es para admitir OpenSSL 3 y pasar a depender de .Cryptography. BouncyCastle](https://www.nuget.org/packages/BouncyCastle.Cryptography)

El código fuente de este paquete está en. 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 frente a UTC DateTime
<a name="net-dg-v4-utc-datetime"></a>

Algunas clases de la versión 3 tienen una DateTime propiedad marcada como «obsoleta» u «obsoleta», así como una propiedad UTC DateTime alternativa. En estas clases, se ha eliminado la DateTime propiedad obsoleta y se ha cambiado el nombre de la DateTime propiedad UTC por el nombre original de la DateTime propiedad.

A continuación se muestran algunos ejemplos de clases en las que se ha implementado este cambio.
+ [DescribeSpotPriceHistoryRequest](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/EC2/TDescribeSpotPriceHistoryRequest.html):
  + Se ha eliminado la `StartTime` propiedad obsoleta y se ha cambiado su nombre a "StartTime». `StartTimeUtc`
  + Se ha eliminado la `EndTime` propiedad obsoleta y se ha cambiado su nombre a "EndTime». `EndTimeUtc`
+  [CreateFleetRequest](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/EC2/TCreateFleetRequest.html) 
  + Se ha eliminado la `ValidFrom` propiedad obsoleta y se ha cambiado su nombre a "ValidFrom». `ValidFromUtc`
  + Se ha eliminado la `ValidUntil` propiedad obsoleta y se ha cambiado su nombre a "ValidUntil». `ValidUntilUtc`

Este cambio puede provocar tiempos de compensación si una aplicación utiliza la DateTime propiedad original obsoleta. Se producirá un error en el momento de la compilación en el código que utilice la DateTime propiedad UTC.

## DateTime análisis
<a name="net-dg-v4-datetime-parsing"></a>

La DateTimeUnmarshaller clase se ha actualizado. Esta clase ha estado analizando y devolviendo DateTime cadenas en hora local. En algunos casos, estos valores se volvían a convertir a UTC debido a una actualización previa, pero no siempre. Ahora, DateTime las cadenas que no están ordenadas se consideran UTC y se especificarán y desordenarán como UTC. Esta actualización incluye los siguientes cambios de comportamiento.

Algunas propiedades de la marca de tiempo que se basan en la DateTime clase se estaban analizando para convertirlas en horas locales. Estas incluían desagrupadores de respuestas para las marcas de tiempo y listas de marcas de tiempo para los formatos y. `TimestampFormat.ISO8601` `TimestampFormat.RFC822` DateTime El análisis se ha actualizado para devolver las horas UTC en su lugar.

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

[ConvertFromUnixEpochMilliseconds](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Util/MAWSSDKUtilsConvertFromUnixEpochMillisecondsInt64.html)Los métodos [ConvertFromUnixEpochSeconds](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Util/MAWSSDKUtilsConvertFromUnixEpochSecondsInt32.html)y, que convierten los segundos de época de Unix en una DateTime estructura, devolvían la hora de Unix como hora local en lugar de como hora UTC. Estos métodos ahora devuelven la hora UTC.

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

La forma en que se habilita el inicio de sesión en el SDK se ha actualizado para la versión 4. El inicio de sesión en la consola y los diagnósticos del sistema funcionan igual que en la versión 3, es decir, se establece la `LoggingConfig.LogTo` propiedad de la [AWSConfigs](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Amazon/TAWSConfigs.html)clase en `LoggingOptions.Console` o`LoggingOptions.SystemDiagnostics`. Se `log4net` ha eliminado la [LoggingOptions](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Amazon/TAWSConfigs.html)opción for, junto con la lógica interna del SDK, que permitía utilizar la reflexión para adjuntarla a una instancia en memoria de. `log4net`

Para incluir el inicio de sesión del SDK en un marco de registro, se utiliza un paquete de adaptadores independiente para conectar el SDK con el marco de registro. [Usa el paquete [AWSSDK.Extensions.Logging.Log4 y el paquete NetAdaptor .Extensions.Logging](https://www.nuget.org/packages/AWSSDK.Extensions.Logging.Log4NetAdaptor). `log4net` AWSSDK ILogger`Microsoft.Extensions.Logging`Paquete de adaptadores para.](https://www.nuget.org/packages/AWSSDK.Extensions.Logging.ILoggerAdaptor/#readme-body-tab) Los siguientes ejemplos de código muestran cómo configurar el registro en estos dos casos.

### Ejemplo de configuración para log4net
<a name="w2aac25c11c27b7b1"></a>

Agregue el `AWSSDK.Extensions.Logging.Log4NetAdaptor` NuGet paquete y llame al `ConfigureAWSSDKLogging` método estático desde. `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));
```

### Ejemplo de configuración para Microsoft.Extensions.Logging
<a name="w2aac25c11c27b7b3"></a>

Agregue el `AWSSDK.Extensions.Logging.ILoggerAdaptor` NuGet paquete y llame al método de `ConfigureAWSSDKLogging` extensión desde la interfaz. `ILoggerFactory`

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

var app = builder.Build();

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

## Support para HTTP 2
<a name="net-dg-v4-http2"></a>

Se ha añadido soporte para HTTP 2 para permitir la transmisión bidireccional. Para obtener más información, consulte [Support para HTTP 2](http2-support.md).

## Inicio de sesión único
<a name="net-dg-v4-sso"></a>

El valor predeterminado de la `SupportsGettingNewToken` propiedad de la clase [SSOAWSCredentialsOptions](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TSSOAWSCredentialsOptions.html) se ha cambiado de `true` a`false`. Si tiene aplicaciones que utilizan la [SSOAWSCredentials](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TSSOAWSCredentials.html)clase para obtener credenciales de SSO, es posible que deba establecer la `Options.SupportsGettingNewToken` propiedad en. `true` Para ver ejemplos de esta configuración, consulte los [ejemplos de código](sso-tutorial-app-only.md#sso-tutorial-app-only-code) en[Tutorial de SSO utilizando únicamente aplicaciones .NET](sso-tutorial-app-only.md). Para obtener información adicional, consulte [PR 3737](https://github.com/aws/aws-sdk-net/pull/3737) en el [aws-sdk-net](https://github.com/aws/aws-sdk-net) GitHub repositorio.

## Cambios específicos de DynamoDB
<a name="net-dg-v4-ddb-specific"></a>

Los siguientes cambios son específicos de Amazon DynamoDB. Muchos de ellos son cambios importantes.

Para obtener información adicional sobre los cambios en DynamoDB en la versión 4 de AWS SDK para .NET la, consulte la entrada del [blog Vista previa](https://aws.amazon.com/blogs/developer/preview-4-of-aws-sdk-for-net-v4/) 4 de la versión 4. AWS SDK para .NET 

### Abrir para ver los elementos
<a name="w2aac25c11c35b7b1"></a>

Los cambios en la versión 4 del SDK para DynamoDB abordan algunos problemas relacionados con la capacidad de prueba, pero se centran principalmente en las bibliotecas de alto nivel:
+ El [modelo de documentos de.NET](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DotNetSDKMidLevel.html), cuyo nombre aparece [DocumentModel](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/DynamoDBv2/NDynamoDBv2DocumentModel.html)en el código.
+ El [modelo de persistencia de objetos de.NET](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DotNetSDKHighLevel.html), cuyo nombre [DataModel](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/DynamoDBv2/NDynamoDBv2DataModel.html)aparece en el código. 

Para obtener información detallada sobre estos modos de programación, consulte [DynamoDB](dynamodb-intro.md) esta guía.

#### Modelo de documento: excepción actualizada para una interfaz simulada `IAmazonDynamoDB`
<a name="w2aac25c11c35b7b1b9"></a>

En el modelo de documento anterior a la versión 4 del SDK, si se inicializaba una [tabla](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/DynamoDBv2/TTable.html) con una interfaz simulada de [IAmazonDynamoDB](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/DynamoDBv2/TIDynamoDB.html), regresaba. `NullReferenceException` En su lugar, vuelve la versión 4 del SDK. `InvalidOperationException` `Table`Los métodos asíncronos deberían funcionar con un cliente simulado, pero es posible que aún veas excepciones al llamar a métodos síncronos desde ellos. `.NET/Core/Standard`

[Para obtener más información sobre este cambio, consulte PR 3388 en.](https://github.com/aws/aws-sdk-net/pull/3388) GitHub

#### Modelo de documento: `FromJson` y métodos `ToJson`
<a name="w2aac25c11c35b7b1c11"></a>

`ToJson`Los métodos `FromJson` y de la clase [Document](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/DynamoDBv2/TDocument.html) ahora se utilizan `System.Text.Json` en lugar de LitJson para la serialización, y se LitJson han eliminado de la versión 4 del SDK. Una ventaja de su uso `System.Text.Json` es que este analizador admite el uso del `Decimal` tipo.NET, que permite una mayor precisión en las propiedades numéricas de punto flotante.

#### Modelo de persistencia de objetos: la clase `DynamoDBOperationConfig`
<a name="w2aac25c11c35b7b1c13"></a>

En el modelo de persistencia de objetos, se han realizado los siguientes cambios en la clase compartida de [Dynamo DBOperation Config](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/DynamoDBv2/TDynamoDBOperationConfig.html):
+ La clase se ha dividido en nuevas clases específicas para cada operación [SaveConfig](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/DynamoDBv2/TSaveConfig.html), como, y [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) Los métodos utilizados se `DynamoDBOperationConfig` han marcado como obsoletos y están sujetos a su eliminación en el futuro.

  Para obtener más información sobre este cambio, consulte [PR 3421](https://github.com/aws/aws-sdk-net/pull/3421) en GitHub.
+ Las `DisableFetchingTableMetadata` propiedades `MetadataCachingMode` y se han eliminado de la clase. Estas propiedades no se incluyeron en las nuevas clases específicas de operaciones mencionadas anteriormente. [Las propiedades eliminadas son valores de nivel de tabla que deben especificarse en la `Context` propiedad global de la clase DynamoDB o en la [AWSConfigsclase Dynamo Config](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Amazon/TAWSConfigsDynamoDB.html). DBContext](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/DynamoDBv2/TDynamoDBContextConfig.html)

  [Para obtener más información sobre este cambio, consulte PR 3422 en.](https://github.com/aws/aws-sdk-net/pull/3422) GitHub
+ La clase ya no hereda de la clase [Dynamo DBContext Config](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/DynamoDBv2/TDynamoDBContextConfig.html). Esto impide pasar un `DynamoDBOperationConfig` objeto al constructor de [Dynamo DBContext](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/DynamoDBv2/TDynamoDBContext.html), donde algunas propiedades de la configuración específica de la operación (por ejemplo) no se `OverrideTableName` aplican.

  Para obtener más información sobre este cambio, consulte [PR](https://github.com/aws/aws-sdk-net/pull/3422) 3422 en. GitHub

#### Modelo de persistencia de objetos: polimorfismo
<a name="w2aac25c11c35b7b1c15"></a>

La DBPolymorphic TypeAttribute clase [Dynamo](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/DynamoDBv2/TDynamoDBPolymorphicTypeAttribute.html) se agregó al modelo de persistencia de objetos. Esta clase admite la serialización y deserialización de tipos polimórficos. [Para obtener más información, consulte PR 3643 en.](https://github.com/aws/aws-sdk-net/pull/3643) GitHub

#### Modelo de documento y modelo de persistencia de objetos: operaciones simulables
<a name="w2aac25c11c35b7b1c17"></a>

Se han agregado nuevas interfaces específicas de operación que permiten a los clientes simular las operaciones de DynamoDB. Los métodos de fábrica de la [IDynamoDBContext](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/DynamoDBv2/TIDynamoDBContext.html)interfaz se han actualizado para mostrar las nuevas interfaces.

Para obtener más información sobre este cambio, consulte [PR 3450](https://github.com/aws/aws-sdk-net/pull/3450) en GitHub.
+ Modelo de persistencia de objetos
  + `BatchGet`Simule operaciones a través de las `IMultiTableBatchGet` interfaces `IBatchGet` y.
  + `BatchWrite`Operaciones simuladas a través de las `IMultiTableBatchWrite` interfaces `IBatchWrite` y.
  + `TransactGet`Operaciones simuladas a través de las `IMultiTableTransactGet` interfaces `ITransactGet` y.
  + `TransactWrite`Operaciones simuladas a través de las `IMultiTableTransactWrite` interfaces `ITransactWrite` y.
  + Simulación `Scan` y `Query` operaciones a través de la `IAsyncSearch` interfaz.
+ Modelo de documento
  + Simula `Table` operaciones a través de la `ITable` interfaz.
  + Simulación `Scan` y `Query` operaciones a través de la `ISearch` interfaz.
  + `TransactWrite`Simule operaciones a través de las `IMultiTableDocumentTransactWrite` interfaces `IDocumentTransactWrite` y.
  + `TransactGet`Operaciones simuladas a través de las `IMultiTableDocumentTransactGet` interfaces `IDocumentTransactGet` y.
  + `BatchWrite`Operaciones simuladas a través de las `IMultiTableDocumentBatchWrite` interfaces `IDocumentBatchWrite` y.
  + `BatchGet`Operaciones simuladas a través de las `IMultiTableDocumentBatchGet` interfaces `IDocumentBatchGet` y.

#### Modelo de documentos y modelo de persistencia de objetos: Support para AOT nativo
<a name="w2aac25c11c35b7b1c19"></a>

Una limitación del AOT nativo es la compatibilidad con tipos.NET anidados. En algunos casos, estos tipos anidados pueden pasar desapercibidos para el componente de recorte del compilador.NET. En este caso, es posible que reciba una excepción como: "» `System.InvalidOperationException: Type <type> is unsupported, it cannot be instantiated.`

Puedes evitar esta limitación añadiendo un punto de la `DynamicDependency` ruta del código que informe al recortador de la dependencia del subtipo. El constructor del tipo.NET de nivel superior que se va a guardar es un lugar probable. El siguiente ejemplo de código muestra cómo utilizar el `DynamicDependency` atributo:

```
[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; }
}
```

#### Dinamo DBStreams
<a name="w2aac25c11c35b7b1c21"></a>

[Dynamo](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Streams.html) se DBStreams ha eliminado del paquete [AWSSDK.DynamoDB](https://www.nuget.org/packages/AWSSDK.DynamoDBv2) y está disponible en su propio NuGet paquete, [AWSSDK.Dynamo, y tiene su propio espacio de nombres DBStreams](https://www.nuget.org/packages/AWSSDK.DynamoDBStreams),. `Amazon.DynamoDBStreams`

#### Permitir la eliminación `TableNamePrefix` del valor
<a name="w2aac25c11c35b7b1c23"></a>

Ahora puede eliminar el valor de la `TableNamePrefix` propiedad en la clase [Dynamo DBContext Config](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Util/TDynamoDBContextConfig.html) en el nivel de operación individual. Para obtener más información sobre este cambio, consulte [PR 3476](https://github.com/aws/aws-sdk-net/pull/3476) en. GitHub

#### Propiedad `RetrieveDateTimeInUtc`
<a name="w2aac25c11c35b7b1c25"></a>

Para la clase [Dynamo DBContext Config](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Util/TDynamoDBContextConfig.html), el valor predeterminado de la `RetrieveDateTimeInUtc` propiedad se ha cambiado a`true`.

#### Propiedad `DynamoDBContextTableNamePrefix`
<a name="w2aac25c11c35b7b1c27"></a>

Se ha eliminado la `DynamoDBContextTableNamePrefix` propiedad de la [AWSConfigsclase DynamoDB](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Amazon/TAWSConfigsDynamoDB.html). Los usuarios deberían llamar `AWSConfigsDynamoDB.Context.TableNamePrefix` en lugar de 

## Cambios específicos de EC2
<a name="net-dg-v4-ec2-specific"></a>

Los siguientes cambios son específicos de Amazon EC2. La mayoría o todos ellos son cambios importantes.

### Abrir para ver los artículos
<a name="w2aac25c11c39b5b1"></a>

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

[La `GetDecryptedPassword` extensión de Amazon EC2 se ha trasladado a un paquete de extensiones independiente denominado AWSSDK .Extensions.EC2. DecryptPassword](https://www.nuget.org/packages/AWSSDK.Extensions.EC2.DecryptPassword). [Este cambio es para admitir OpenSSL 3 y pasar a depender de .Cryptography. BouncyCastle](https://www.nuget.org/packages/BouncyCastle.Cryptography)

El código fuente de este paquete está en. 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)

#### Support para Amazon EC2 IMDSv1
<a name="w2aac25c11c39b5b1b5"></a>

Se ha eliminado la compatibilidad con la versión 1 (IMDSv1) del servicio de metadatos de instancias. La versión 4 del SDK siempre usa la versión 2 (IMDSv2) del Servicio de Metadatos de Instancia al obtener las credenciales y otros metadatos del IMDS. Para obtener más información sobre el IMDS, consulte [Uso del IMDS en la](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-service.html) Guía del usuario de [Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/).

#### Elementos de programación que se han modificado o eliminado
<a name="w2aac25c11c39b5b1b7"></a>
+ Se ha eliminado todo el `Amazon.EC2.Import` espacio de nombres y el código.
+ Se ha eliminado todo el `Amazon.EC2.Util` espacio de nombres y el código, que incluyen las utilidades de AMI que se utilizaban para buscar EC2 AMIs para Windows.
+ La `IpRanges` propiedad obsoleta se ha eliminado de la clase. [IpPermission](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/EC2/TIpPermission.html) Utilice las `Ipv6Ranges` propiedades `Ipv4Ranges` o en su lugar.
+ Se han eliminado de la [EC2InstanceMetadata](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Util/TEC2InstanceMetadata.html)clase los siguientes campos obsoletos: `EC2_METADATA_SVC``EC2_METADATA_ROOT`,`EC2_USERDATA_ROOT`,`EC2_DYNAMICDATA_ROOT`, y`EC2_APITOKEN_URL`.

## Cambios específicos de S3
<a name="net-dg-v4-s3-specific"></a>

Los siguientes cambios son específicos de Amazon S3. La mayoría o todos ellos son cambios importantes.

### Abrir para ver los artículos
<a name="w2aac25c11c43b5b1"></a>

#### Región de AWS us-east-1
<a name="w2aac25c11c43b5b1b3"></a>

Los clientes del servicio Amazon S3 configurados para la `us-east-1` región ya no pueden acceder a los buckets de otras regiones. Se debe acceder a los buckets con los clientes de servicio de S3 configurados para la región en la que se encuentra el bucket.

Para obtener información adicional sobre este cambio, consulte la entrada del blog [Preview 4 of AWS SDK para .NET V4](https://aws.amazon.com/blogs/developer/preview-4-of-aws-sdk-for-net-v4/).

#### Cliente de cifrado S3
<a name="w2aac25c11c43b5b1b5"></a>

El cliente de cifrado Amazon S3, que se define en el espacio de `Amazon.S3.Encryption` nombres, se ha eliminado del [AWSSDKpaquete.S3](https://www.nuget.org/packages/AWSSDK.S3). Este cliente se ha trasladado a su propio paquete denominado [Amazon.Extensions.S3.Encryption](https://www.nuget.org/packages/Amazon.Extensions.S3.Encryption) y su documentación se encuentra en. [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) Para obtener información sobre cómo migrar, consulte [Migración del cliente de cifrado S3 (de la V1 a la V2)](s3-encryption-migration-v1-v2.md). Para obtener más información sobre el cifrado S3, consulte [Algoritmos de cifrado compatibles](https://docs.aws.amazon.com/amazon-s3-encryption-client/latest/developerguide/encryption-algorithms.html) en la [Guía para desarrolladores de Amazon S3 Encryption Client](https://docs.aws.amazon.com/amazon-s3-encryption-client/latest/developerguide).

#### Directiva de etiquetado de S3 para `CopyObject`
<a name="w2aac25c11c43b5b1b7"></a>

La `TaggingDirective` propiedad ha sido expuesta como una propiedad pública de la [CopyObjectRequest](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/S3/TCopyObjectRequest.html)clase, que es utilizada por `AmazonS3Client.CopyObject` los métodos. Esta propiedad corresponde al `x-amz-tagging-directive` parámetro Amazon S3, tal como se define en la [CopyObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html)acción.

La directiva de etiquetado ya no se establece automáticamente en COPY. Si un desarrollador no especifica una directiva de etiquetado, el backend de S3 asume automáticamente que es COPY, pero si un desarrollador establece explícitamente la propiedad en null, el valor no se establece en absoluto.

#### La `UseArnRegion` propiedad de la configuración de S3
<a name="w2aac25c11c43b5b1b9"></a>

La `UseArnRegion` propiedad de la clase [Amazon.S3.AmazonS3Config](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/S3/TS3Config.html) se ha actualizado para que la variable de `AWS_S3_USE_ARN_REGION` entorno tenga prioridad sobre la configuración del archivo compartido. `s3_use_arn_region` AWS `config` [Para obtener más información sobre estas variables y configuraciones, consulte la referencia sobre la configuración en la Guía de referencia de herramientas y [herramientas](https://docs.aws.amazon.com/sdkref/latest/guide/settings-reference.html).AWS SDKs ](https://docs.aws.amazon.com/sdkref/latest/guide/)

#### Barras diagonales iniciales para los métodos `CopyObject` y `CopyPart`
<a name="w2aac25c11c43b5b1c11"></a>

Las barras diagonales iniciales ya no se recortarán para Amazon S3 `CopyObject` y `CopyPart` sus métodos. La `DisableTrimmingLeadingSlash` propiedad se ha eliminado de las clases [CopyObjectRequest](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/S3/TCopyObjectRequest.html)y [CopyPartRequest](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/S3/TCopyPartRequest.html).

#### Los `DoesS3BucketExist...` métodos
<a name="w2aac25c11c43b5b1c13"></a>

[Los `DoesS3BucketExistAsync` métodos obsoletos `DoesS3BucketExist` se han eliminado de la clase [AmazonS3util](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/S3/TS3Util.html), que implementa la interfaz AmazonS3. ICore](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TICoreS3.html) Estos métodos se eliminaron porque siempre utilizan HTTP. En su lugar, utilice [doESS3 BucketExist V2](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/S3/MS3UtilDoesS3BucketExistV2IS3String.html) y [BucketExistdoESS3](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/S3/MS3UtilDoesS3BucketExistV2AsyncIS3String.html) V2Async.

#### El SDK siempre usa SigV4
<a name="w2aac25c11c43b5b1c15"></a>

La versión 4 del AWS SDK para .NET siempre usa la versión 4 de AWS Signature (SiGv4) para firmar las solicitudes. Este cambio produce los siguientes cambios relacionados:
+ Se ha eliminado la `UseSignatureVersion4` propiedad de la clase [AWSConfigsS3](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Amazon/TAWSConfigsS3.html).
+ `SignatureVersion`Propiedad de [Amazon.Runtime. ClientConfig](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TClientConfig.html)se ha eliminado la clase. Esta propiedad solo la utilizaba Amazon S3 por motivos de compatibilidad con versiones anteriores.
+ Se ha eliminado la `RegionEndpoint.Endpoint` clase. Esto incluye la `SignatureVersionOverride` propiedad, que se utilizó para anular las versiones firmadas de Amazon S3. En su lugar, utilice el método específico del servicio`client.DetermineServiceOperationEndPoint()`.
+ [Métodos actualizados: AmazonS3util. ](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/S3/MS3UtilPostUploadS3PostUploadRequest.html)PostUpload[PostUploadSignedPolicyy S3. GetSignedPolicy](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/S3/MS3PostUploadSignedPolicyGetSignedPolicyStringAWSCredentialsString.html)para usar SiGV4. Como consecuencia, se eliminó el `S3PostUploadSignedPolicy.GetSignedPolicyV4` método porque `GetSignedPolicy` ahora realiza la misma función. Además, se `GetSignedPolicy` ha asignado un tercer parámetro para el punto final de la región.

#### Los `PutACL` métodos `GetACL` y
<a name="w2aac25c11c43b5b1c17"></a>

Los `PutACL` métodos `GetACL` y de la clase [AmazonS3Client](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/S3/TS3Client.html) se han marcado como obsoletos. Para acceder a la funcionalidad de estos métodos, utilice en su lugar los siguientes métodos nuevos:`GetBucketACL`,`PutBucketACL`, `GetObjectACL` y. `PutObjectACL`

#### Se han eliminado los elementos de programación obsoletos
<a name="w2aac25c11c43b5b1c19"></a>

Se eliminaron varios elementos de programación de la implementación de Amazon S3 de la versión 4 del SDK, incluidos los valores de enumeración, los tipos, los métodos, los espacios de nombres, etc. Estos se enumeran a continuación, si no se trataron anteriormente, junto con las posibles medidas que puede tomar para proceder a su eliminación.
+ La `DisableMD5Stream` propiedad ha sido retirada de la [TransferUtilityUploadRequest](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/S3/TTransferUtilityUploadRequest.html)clase. Utilice la propiedad `DisableDefaultChecksumValidation` en su lugar.

  Además, la `CalculateContentMD5Header` propiedad ha sido eliminada de la `TransferUtilityUploadRequest` clase. Esta propiedad ya no es necesaria porque el SDK calcula una suma de comprobación de forma predeterminada.
+ Las `ServerSideEncryptionKeyManagementServiceKeyId` propiedades `ServerSideEncryptionMethod` y se han eliminado de la [CopyPartRequest](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/S3/TCopyPartRequest.html)clase. En su lugar, utilice las propiedades con los mismos nombres en la [InitiateMultipartUploadRequest](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/S3/TInitiateMultipartUploadRequest.html)clase, que se utilizan en algunos de los `InitiateMultipartUpload...` métodos de la clase [AmazonS3Client](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/S3/TS3Client.html).
+ La `Expires` propiedad se ha eliminado de la clase. [GetObjectResponse](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/S3/TGetObjectResponse.html) Utilice la propiedad `ExpiresString` en su lugar. Es posible que la cadena no tenga un formato de marca de tiempo válido, por lo que el código debería usar el `TryParse` método al convertirla a. `DateTime`
+ [Se han eliminado Región de AWS los identificadores obsoletos de la enumeración de S3Region.](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/S3/TS3Region.html)
+ La `Prefix` propiedad se ha eliminado de la clase. [LifecycleRule](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/S3/TLifecycleRule.html) Utilice la propiedad `Filter` en su lugar.

  Además, las `Transition` propiedades `NoncurrentVersionTransition` y propiedades se han eliminado de la `LifecycleRule` clase. En su lugar, utilice `Transitions` las colecciones `NoncurrentVersionTransitions` y.
+ La `Event` propiedad se ha eliminado de la [TopicConfiguration](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/S3/TTopicConfiguration.html)clase. En su lugar, usa la `Events` colección.
+ CalculateContentMD5Propiedad de encabezado. Ya no es necesario establecer esta propiedad porque el SDK calculará una suma de comprobación de forma predeterminada.
+ La `Bucket` propiedad se ha eliminado de la [SelectObjectContentRequest](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/S3/TSelectObjectContentRequest.html)clase. Utilice la propiedad `BucketName` en su lugar.
+ La `NumberOfUploadThreads` propiedad ha sido eliminada de la [TransferUtilityConfig](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/S3/TTransferUtilityConfig.html)clase. En su lugar, utilice la `ConcurrentServiceRequests` propiedad.

## Elementos de programación que se eliminaron
<a name="net-dg-v4-removed"></a>

Se eliminaron varios elementos de programación de la versión 4 del SDK, incluidos los valores de enumeración, los tipos, los métodos, los espacios de nombres, etc. Estos se enumeran a continuación, si no se trataron anteriormente, junto con las posibles medidas que puede tomar para proceder a su eliminación.

### Abrir para ver los artículos
<a name="w2aac25c11c47b5b1"></a>

#### El espacio de nombres `Amazon.Auth.AccessControlPolicy.ActionIdentifiers`
<a name="w2aac25c11c47b5b1b3"></a>

Se ha eliminado el `Amazon.Auth.AccessControlPolicy.ActionIdentifiers` espacio de nombres. Esto incluye los identificadores de acciones de IAM, que se definieron en la clase. `IdentityandAccessManagementActionIdentifiers` El código que usa estos identificadores de acción debe cambiarse para usar valores de cadena del nombre de la acción.

Para obtener información adicional, consulte [Creación de políticas administradas de IAM a partir de JSON](iam-policies-create-json.md) la [descripción general de las políticas de JSON](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#access_policies-json) en la Guía del [usuario de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/).

#### La clase `ClientConfig`
<a name="w2aac25c11c47b5b1b7"></a>

El [Amazon.Runtime. ](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TClientConfig.html)ClientConfig[es la clase base de las clases de configuración de clientes de servicio, como AmazonS3Config.](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/S3/TS3Config.html) Se han eliminado los siguientes elementos de programación de esta clase.
+ `DetermineDnsSuffix`Se han eliminado los métodos `DetermineServiceURL` y. En su lugar, utilice el `DetermineServiceOperationEndpoint` método del cliente de servicio; por ejemplo, [AmazonS3Client. DetermineServiceOperationEndpoint](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/S3/MS3DetermineServiceOperationEndpointWebServiceRequest.html).
+ La `ReadEntireResponse` propiedad ha sido retirada. En su lugar, utilice una de las siguientes opciones:
  + La `LogResponses` propiedad de [AWSConfigs. LoggingConfig](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Util/TLoggingConfig.html)clase.
  + La `LogResponse` propiedad de la configuración del cliente; por ejemplo, [AmazonS3Config](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/S3/TS3Config.html).

#### El espacio de nombres `Amazon.Runtime`
<a name="w2aac25c11c47b5b1c11"></a>

El espacio de nombres [Amazon.Runtime](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/NRuntime.html) se actualizó de la siguiente manera:
+ La `ECSTaskCredentials` clase obsoleta se ha eliminado del espacio de nombres. En su lugar, utilice el [GenericContainerCredentials](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TGenericContainerCredentials.html)proveedor, que también es compatible con [Amazon EKS Pod Identities](https://docs.aws.amazon.com/eks/latest/userguide/pod-identities.html).
+ Las clases obsoletas `StoredProfileAWSCredentials` y `StoredProfileCredentials` las clases se han eliminado del espacio de nombres. [Utilice el [Net SDKCredentials File](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TNetSDKCredentialsFile.html) o la [SharedCredentialsFile](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TSharedCredentialsFile.html)clase de Amazon.Runtime. CredentialManagement](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/NRuntimeCredentialManagement.html)espacio de nombres en su lugar.
+ El `HasCachedAccessTokenAvailable` método obsoleto de la [SSOAWSCredentials](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TSSOAWSCredentials.html)clase se ha eliminado del espacio de nombres.
+ La `EnvironmentAWSCredentials` clase obsoleta se ha eliminado del espacio de nombres. En su lugar, utilice la clase [AppConfigAWSCredentials](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TAppConfigAWSCredentials.html).
+ La `StoredProfileFederatedCredentials` clase obsoleta se ha eliminado del espacio de nombres. En su lugar, utilice la [clase federada. AWSCredentials](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TFederatedAWSCredentials.html)
+ Se han eliminado del espacio de nombres las siguientes clases obsoletas:`EnvironmentVariableAWSEndpointDiscoveryEnabled`, y`ProfileAWSEndpointDiscoveryEnabled`. `FallbackEndpointDiscoveryEnabledFactory`
+ La `UseSigV4` propiedad obsoleta se ha eliminado de la [AmazonWebServiceRequest](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TWebServiceRequest.html)clase. Utilice la propiedad `SignatureVersion` en su lugar.
+ La `ProfileIniFile` clase del espacio de `Amazon.Runtime.Internal.Util` nombres tiene un método sobrecargado llamado. `TryGetSection` Las versiones del método que no admiten el `out` parámetro for se `nestedProperties` han eliminado de la clase.
+ Se ha eliminado la `EventBridgeSigner` clase obsoleta `Amazon.Runtime.Internal.Auth` del espacio de nombres.
+ La propiedad de `Parameters` diccionario obsoleta se ha eliminado de la [WebServiceRequestEventArgs](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TWebServiceRequestEventArgs.html)clase. Utilice la propiedad `ParameteCollection` en su lugar.

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

La copia fuente de se BouncyCastle ha eliminado de la versión 4 del SDK.

#### La clase `StoredProfileSAMLCredentials`
<a name="w2aac25c11c47b5b1c15"></a>

La `StoredProfileSAMLCredentials` clase obsoleta de [Amazon. SecurityTokenSe ha eliminado el espacio de nombres.SAML](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/SecurityToken/NSecurityTokenSAML.html). [En su lugar, utilice la AWSCredentials clase [Federated](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TFederatedAWSCredentials.html) en el espacio de nombres Amazon.Runtime.](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/NRuntime.html)

#### La clase `AWSSDKUtils`
<a name="w2aac25c11c47b5b1c17"></a>

Se han eliminado los siguientes métodos de la [AWSSDKUtils](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Util/TAWSSDKUtils.html)clase:, y. `ResolveResourcePath` `ProtectEncodedSlashUrlEncode` `ConvertToUnixEpochMilliSeconds`

#### La clase `ProfileManager`
<a name="w2aac25c11c47b5b1c19"></a>

La `ProfileManager` clase obsoleta se ha eliminado del espacio de nombres [Amazon.Util.](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Util/NUtil.html) [Utilice el [SDKCredentialsarchivo Net o [SharedCredentialsFile](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TSharedCredentialsFile.html)la clase](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TNetSDKCredentialsFile.html) de Amazon.Runtime. CredentialManagement](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/NRuntimeCredentialManagement.html)espacio de nombres en su lugar.

#### La clase `AWSConfigs`
<a name="w2aac25c11c47b5b1c21"></a>

Se han eliminado de la [AWSConfigs](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Amazon/TAWSConfigs.html)clase las siguientes propiedades obsoletas: `Logging``ResponseLogging`, y. `LogMetrics` Utilice la propiedad `LoggingConfig` en su lugar.

#### La clase `ConditionFactory`
<a name="w2aac25c11c47b5b1c23"></a>

Se ha eliminado de la [ConditionFactory](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Auth/TConditionFactory.html)clase el método con la siguiente firma:`NewCondition(ConditionFactory.DateComparisonType, DateTime)`. Utilice el [NewConditionUtc](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Auth/MConditionFactoryNewConditionUtcConditionFactoryDateComparisonTypeDateTime.html)método en su lugar.

#### CloudFront Utilidades de Amazon
<a name="w2aac25c11c47b5b1c25"></a>

Se han eliminado el espacio de `Amazon.CloudFront.Util` nombres y la `AmazonCloudFrontUtil` clase obsoletos.

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

En la [ListPrincipalThingsResponse](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/IoT/TListPrincipalThingsResponse.html)clase, se ha eliminado una personalización antigua que preveía una `NextToken` anulación en favor de la paginación.

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

Se han eliminado los siguientes `Invoke...` métodos de la [AmazonLambdaClient](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Lambda/TLambdaClient.html)clase porque los nombres eran confusos.
+ Se ha eliminado el método V3 con la siguiente firma:`InvokeAsyncResponse InvokeAsync(InvokeAsyncRequest)`. Este es un método sincrónico en la versión 3 del SDK. En su lugar, utilícelo `InvokeResponse Invoke(InvokeRequest)` (para el procesamiento sincrónico) o `Task InvokeAsync(InvokeRequest, CancellationToken)` (para el procesamiento asíncrono).
+ Se ha eliminado el método V3 con la siguiente firma:. `Task InvokeAsyncAsync(InvokeAsyncRequest, CancellationToken)` Este es un método asíncrono en la versión 3 del SDK. En su lugar, use `Task InvokeAsync(InvokeRequest, CancellationToken)`.

#### Amazon SageMaker Runtime
<a name="w2aac25c11c47b5b1c31"></a>

Se han eliminado los constructores obsoletos [PayloadPart](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/SageMakerRuntime/TPayloadPart.html)de la clase.