如何在Azure Functions

时间:2016-04-05 21:41:54

标签: 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;
}

当我点击" Save" 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;
}

在这种情况下,当我点击" Save" Azure门户中的按钮:

  

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",但这似乎不适用于门户网站。有什么建议吗?

1 个答案:

答案 0 :(得分:21)

史蒂夫,

.NET Framework程序集和一些“共享”程序集may be added with the following syntax

#r "AssemblyName"

因此,对于JSON.NET,您可以使用:

#r "Newtonsoft.Json"

添加引用后,然后就可以像在常规C#项目/文件中一样添加using语句:

using Newtonsoft.Json;

因此,总而言之,您需要添加对要使用的程序集的引用,导入该程序集公开的名称空间,以便您可以使用其类型。这类似于您在Visual Studio中所做的操作,您可以在其中添加程序集引用,然后在需要的地方添加using语句。

我希望这有帮助!