2016-04-05 4 views
11

Я попытался следующие:Как включить ссылки на внешние сборки в Azure функций

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 Сценарий для функции «ProbeEventHubTrigger» изменен. Перегрузочный. 2016-04-05T21: 28: 33.443 Скомпилировать скрипт функции. 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; 
} 

В этом случае я получаю следующее, когда я нажал на кнопку «Сохранить» в Лазурном портале:

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

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

ответ

20

Стив,

.NET Framework сборки и несколько "общих" сборки may be added with the following syntax:

#r "AssemblyName" 

Так, Json.NET, вы можете использовать:

#r "Newtonsoft.Json" 

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

using Newtonsoft.Json; 

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

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

+0

Спасибо. Вы можете рассмотреть возможность обновления примеров в своей документации, чтобы показать это. –

+1

Спасибо, Стив. Мы активно работаем над образцами и документацией, чтобы покрыть недостающие вещи и сделать их более открытыми. Часть информации, которую я разделяю, рассматривается здесь: https://azure.microsoft.com/en-us/documentation/articles/functions-reference/#referencing-external-assemblies, но не стесняйтесь задавать вопросы о SO и MSDN, если вы не можете найти информацию, которую ищете в документах. Мы доберемся туда :) –

+0

Спасибо Фабио. До сих пор я впечатлен простотой, с которой вы можете удалить сообщения из центра событий и выгрузить их в DocumentDB. Хорошая работа! –

 Смежные вопросы

  • Нет связанных вопросов^_^