Тип или NameSpace "BlobAttribute" не найден - PullRequest
0 голосов
/ 11 февраля 2019

Я следую учебному пособию по Pluralsight, и оно немного устарело, поэтому я пытаюсь заполнить пробелы.В нем сказано использовать BlobAttribute для установки имени файла, но я продолжаю получать сообщение о том, что тип или пространство имен не найдено.

Я использую CSX, и я не могу всю жизнь заставить его работать.Когда я копировал строку в приложение с функцией тестирования C #, все работало просто отлично.Я не хочу сейчас переключаться на этот маршрут, потому что он не является частью учебника, и я пытаюсь придерживаться их курса, но они тоже не объясняют этого.Операторы Microsoft.Azure.WebJobs, использующие операторы, были в основном только тем, что я экспериментировал, пытаясь заставить его работать.

Есть идеи, как заставить BlobAttribute работать в CSX?

#r "Newtonsoft.Json"
#r "Microsoft.Azure.WebJobs"
#r "Microsoft.Azure.WebJobs.Extensions"

using System;
using Newtonsoft.Json;
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Extensions;

public class Order
{
public string OrderID {get;set;}
public string ProductID {get;set;}
public string Email{get;set;}
public decimal Price {get;set;}
}

public static void Run(Order myQueueItem, ILogger log, IBinder binder)
{    
log.LogInformation($"C# Queue trigger function processed: 
{myQueueItem.OrderID}");

using(var outputBlob = binder.Bind<TextWriter>(new BlobAttribute($"{myQueueItem.OrderID}.lic")))    
{
    outputBlob.WriteLine($"OrderID: {myQueueItem.OrderID}");
    outputBlob.WriteLine($"ProductID: {myQueueItem.ProductID}");
    outputBlob.WriteLine($"Email: {myQueueItem.Email}");
    outputBlob.WriteLine($"Price: {myQueueItem.Price}");
    outputBlob.WriteLine($"Purchase Date: {DateTime.UtcNow}");

    var md5 = System.Security.Cryptography.MD5.Create();
    var hash = md5.ComputeHash(System.Text.Encoding.UTF8.GetBytes(myQueueItem.Email + "secret"));
    outputBlob.WriteLine($"Secret Code: 
{BitConverter.ToString(hash).Replace("-","")}");
    }
}

1 Ответ

0 голосов
/ 11 февраля 2019

BlobAttribute находится в сборке Microsoft.Azure.WebJobs.Extensions.Storage, добавление ссылки #r "Microsoft.Azure.WebJobs.Extensions.Storage" может исправить.

Кроме того, посмотрите эту строку

using(var outputBlob = binder.Bind<TextWriter>(new BlobAttribute($"{myQueueItem.OrderID}.lic")))

BlobAttribute требует, чтобы путь к BLOB-объекту был containerName/ fileName, поэтому вам может понадобиться добавить контейнер перед вашим файлом, например

using(var outputBlob = binder.Bind<TextWriter>(new BlobAttribute($"mycontainer/{myQueueItem.OrderID}.lic")))
...