2014-06-18 4 views
6

Sto creando un'applicazione console WebJob di Azure che ridimensiona le immagini caricate nell'archiviazione BLOB. Quando si segue uno degli esempi di codice in linea, non sono in grado di fare riferimento e utilizzare gli attributi dei parametri di input BlobInput e BlobOutput. Sto usando il pacchetto NuGet Microsoft.Azure.Jobs 0.3.0-beta (e Microsoft.Azure.Jobs.Core).Dove sono le classi BlobInput e BlobOutput di Azure WebJob?

In quali spazi dei nomi sono presenti BlogInput e BlobOutput? C'è un altro pacchetto NuGet di cui ho bisogno?

Ecco il mio codice, che non viene compilato perché non può risolvere BlobInput e BlobOutput:

using Microsoft.Azure.Jobs; 
using System.IO; 

namespace ConsoleApplication2 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      JobHost host = new JobHost(); 
      host.RunAndBlock(); 
     } 

     public static void SquishNewlyUploadedPNGs([BlobInput("input/{name}")] Stream input, [BlobOutput("output/{name}")] Stream output) 
     { 
      //... 
     } 
    } 
} 
+0

Questi sono attributi, quindi i nomi dei tipi devono essere BlobInputAttribute, BlobOutputAttribute. Dovrebbe essere in Microsoft.WindowsAzure.Jobs.dll nello spazio dei nomi Microsoft.WindowsAzure.Jobs. O almeno erano lì in una volta. Prova ad aprire tutte le DLL sdk di Jobs, ad esempio, JustDecompile e cercandole. – Will

+0

Quando decompilato Microsoft.Azure.Jobs.dll, questi attributi non sono dove possono essere trovati. Questo è l'assembly dall'ultima versione del pacchetto NuGet 0.3.0-beta. Se utilizzo un pacchetto precedente, ad esempio 0.2.0-alpha, l'assembly si chiama Microsoft.WindowsAzure.Jobs.dll e sono presenti come previsto. Pertanto, l'aggiornamento da 0.2.0 a 0.3.0 non solo rebranda il nome dell'assembly da Microsoft.WindowsAzure.Jobs a Microsoft.Azure.Jobs ma perde anche BlogInputAttribute e BlobOutputAttribute. Suppongo che un'opzione potrebbe essere usare 0.2.2, ma preferirei imparare a usare WebJobs usando la versione corrente –

+0

. È interessante notare che Microsoft.Azure.Jobs.dll contiene BlobAttribute e BlobTriggerAttribute. Quest'ultimo è descritto nell'assembly come "Rappresenta un attributo che associa un parametro a un BLOB di Azure, causando l'esecuzione del metodo quando viene caricato un BLOB". Immagino che sia un discendente di BlobInputAttribute, forse MS sta ancora giocando con i nomi. –

risposta

18

Nella versione beta di Azure SDK WebJobs abbiamo cambiato i nomi degli attributi come descritto di seguito. La funzionalità è rimasta la stessa.

BlobInputAttribute -> BlobTriggerAttribute 
BlobOutputAttribute -> BlobAttribute 
QueueInputAttribute -> QueueTriggerAttribute 
QueueOutputAttribute -> QueueAttribute 

Inoltre, i nomi dei pacchetti sono cambiati. È necessario utilizzare:

http://www.nuget.org/packages/Microsoft.Azure.Jobs/0.3.0-beta 
http://www.nuget.org/packages/Microsoft.Azure.Jobs.Core/0.3.0-beta 
+0

Grazie Vittorio, i nomi aggiornati funzionano esattamente come previsto, grazie per la risposta rapida. –