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
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
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:
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.