Как включить ссылки на внешние сборки в Azure Functions

Я попробовал следующее:

using System;
using Newtonsoft.Json
using Newtonsoft.Linq

public static void Run(string myEventHubMessage, out string document, TraceWriter log)
{
    log.Verbose($"C# Event Hub trigger function processed a message: {myEventHubMessage}");
    dynamic jsonData = JObject.Parse(myEventHubMessage);
    document = jsonData;
}

Я получаю следующее, когда я нажимаю кнопку "Сохранить" на портале Azure:

2016-04-05T21: 28: 31 Добро пожаловать, теперь вы подключены к журнальному потоку оказание услуг. 2016-04-05T21: 28: 33.443 Script для функции "ProbeEventHubTrigger" изменился. Перегрузочный. 2016-04-05T21: 28: 33,443 Компиляция функции script. 2016-04-05T21: 28: 33.568 (2,22): ошибка CS1002:; ожидаемый 2016-04-05T21: 28: 33,568 (3,22): ошибка CS1002:; ожидаемый 2016-04-05T21: 28: 33,568 (2,7): ошибка CS0246: тип или имя пространства имен 'Newtonsoft' не найдено (вы не видите используя директиву или ссылку на сборку?) 2016-04-05T21: 28: 33.568 (3,7): ошибка CS0246: Тип или имя пространства имен Newtonsoft не могли (вам не хватает директивы использования или ссылки на сборку?) 2016-04-05T21: 28: 33.568 (8,24): ошибка CS0103: имя "JObject" не существует в текущем контексте 2016-04-05T21: 28: 33.568 Компиляция не удалось.

Я также пробовал следующее:

#r "Newtonsoft.Json"
#r "Newtonsoft.Linq"
using System;

public static void Run(string myEventHubMessage, out string document, TraceWriter log)
{
    log.Verbose($"C# Event Hub trigger function processed a message: {myEventHubMessage}");
    dynamic jsonData = JObject.Parse(myEventHubMessage);
    document = jsonData;
}

В этом случае я получаю следующее, когда я нажимаю кнопку "Сохранить" на портале Azure:

2016-04-05T21: 35: 36 Добро пожаловать, теперь вы подключены к журнальному потоку оказание услуг. 2016-04-05T21: 35: 38.428 Script для функции "ProbeEventHubTrigger" изменился. Перегрузочный. 2016-04-05T21: 35: 38,428 Компиляция функции script. 2016-04-05T21: 35: 38.571 (2,1): ошибка CS0006: файл метаданных 'Newtonsoft.Linq' не найден. 2016-04-05T21: 35: 38.571 (8,24): ошибка CS0103: имя "JObject" не существует в текущем контексте

Это не очевидно из документации, как ссылаться на эти сборки. Я вижу в одном примере синтаксис "использование Newtonsoft.Json", но это, похоже, не работает на портале. Любые предложения?

Ответ 1

Стив,

В сборках .NET Framework и нескольких "общих" сборках может быть добавлен следующий синтаксис:

#r "AssemblyName"

Итак, для JSON.NET вы можете использовать:

#r "Newtonsoft.Json"

После добавления ссылки вы можете добавить свои операторы, как в обычном проекте/файле С#:

using Newtonsoft.Json;

Итак, в заключение вам нужно добавить ссылку на сборки, которые вы хотите использовать, и импортировать пространства имен, открытые этой сборкой, чтобы вы могли использовать ее типы. Это похоже на то, что вы делаете в Visual Studio, где вы добавляете ссылку на сборку, а затем добавляете свои операторы использования там, где они вам нужны.

Надеюсь, это поможет!