Azure functions 如何在Azure函数中包含对外部程序集的引用

Azure functions 如何在Azure函数中包含对外部程序集的引用,azure-functions,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}");

我尝试了以下方法:

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;
}
#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 portal中的“保存”按钮时,我得到以下信息:

2016-04-05T21:28:31欢迎,您现在已连接到日志流 服务2016-04-05T21:28:33.443函数脚本 “ProbeEventThubTrigger”已更改。重新加载。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” 被找到(是否缺少using指令或程序集引用?) 2016-04-05T21:28:33.568(8,24):错误CS0103:名称“JObject”不正确 在当前上下文中不存在2016-04-05T21:28:33.568编译 失败了

我还尝试了以下方法:

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;
}
#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函数脚本 “ProbeEventThubTrigger”已更改。重新加载。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”,但这在门户中似乎不起作用。有什么建议吗?

史蒂夫

.NET Framework程序集和一些“共享”程序集:

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

#r "Newtonsoft.Json"
添加引用后,您可以像在常规C#项目/文件中一样添加using语句:

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


我希望这有帮助

谢谢。您可能需要考虑更新文档中的示例来显示这一点。谢谢您,史提夫。我们正在积极地制作样本和文档,以覆盖丢失的东西,并使其更易于发现。这里介绍了我分享的一些信息:但是如果你在文档中找不到你想要的信息,请继续询问SO和MSDN。我们会到达那里:)谢谢法比奥。到目前为止,我对您可以从事件中心将消息出列并将其转储到DocumentDB中的简单性印象深刻。干得好!在azure函数中使用错误的变量也可能不会导致编译时错误,但会导致运行时错误,如“内部服务器错误”。感谢Fabio,这有助于解决其他问题