es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Flujos asincrónicos no disponibles en Xamarin (C# 7.3)

Estoy tratando de agregar metadatos a mis blobs de Azure (imágenes) desde mi aplicación Xamarin. Primero probé esto en una aplicación de consola C # y funcionó, pero cuando intenté poner el código en mi aplicación Xamarin (como una clase nueva y separada), obtuve el siguiente error.

CS8370 La característica ‘async streams’ no está disponible en C# 7.3. Utilice la versión de lenguaje 8.0 o superior.

El error apunta al primer “await” (await foreach (BlobItem …)). Estoy usando netstandard 2.0 (en mi archivo .csproj dice netstandard2.0)

Me preguntaba si podría cambiar mi código / cambiar cualquier configuración para hacer que funcione?

Este es mi código:

static async Task AddType()
{
string connectionString = “xxx”;

// Crea un objeto BlobServiceClient que se utilizará para crear un cliente de contenedor
BlobServiceClient blobServiceClient = new BlobServiceClient(connectionString);

// Obtener el objeto de cliente de contenedor
BlobContainerClient containerClient = blobServiceClient.GetBlobContainerClient("raspberryuploads");

// Enumere todos los blobs en el contenedor
await foreach (BlobItem blobItem en containerClient.GetBlobsAsync())
{
    BlobClient blobClient = new BlobClient("xxx", "yyy", blobItem.Name);
    IDictionary<string, string> metadata = new Dictionary<string, string>();

    // Agregue metadatos al diccionario usando la sintaxis de clave / valor
    metadata["Type"] = "Result";

    // Establezca los metadatos del blob.
    await blobClient.SetMetadataAsync(metadata);
}

}

Este código está compuesto principalmente por documentación de Microsoft.

enlaces: Blobs Metadatos

Tags:  , ,

Answer

  1. Avatar for davy.ai

    El error que está recibiendo está relacionado con el uso de flujos async, una función introducida en C# 8.0. Como actualmente Xamarin utiliza C# 7.3 por defecto, deberá actualizar su versión del lenguaje para poder utilizar esta función.

    Para actualizar la versión de su lenguaje, siga estos pasos:

    1. Haga clic derecho en su proyecto en el Explorador de soluciones y seleccione Propiedades.
    2. Seleccione la pestaña Compilación y haga clic en el botón Avanzado en la parte inferior.
    3. En el cuadro de diálogo Configuración avanzada de compilación, debería ver un campo para “Versión del lenguaje”. Cambie esto a 8.0 o superior.
    4. Haga clic en Aceptar para cerrar el cuadro de diálogo y guardar los cambios.

    Una vez que haya actualizado su versión del lenguaje, debería poder utilizar flujos async en su aplicación Xamarin y resolver el error que está recibiendo.

Comments are closed.