【问题标题】:How do you include references to external assemblies in Azure Functions如何在 Azure Functions 中包含对外部程序集的引用
【发布时间】:2016-04-05 21:41:54
【问题描述】:

我尝试了以下方法:

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' 不能 被发现(您是否缺少 using 指令或程序集引用?) 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 函数脚本 “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”,但这似乎在门户中不起作用。有什么建议吗?

【问题讨论】:

标签: azure-functions


【解决方案1】:

史蒂夫,

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

#r "AssemblyName"

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

#r "Newtonsoft.Json"

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

using Newtonsoft.Json;

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

我希望这会有所帮助!

【讨论】:

  • 谢谢。您可能需要考虑更新文档中的示例以显示这一点。
  • 谢谢你,史蒂夫。我们正在积极研究样本和文档,以弥补缺失的内容并使其更容易被发现。这里介绍了我分享的一些信息:azure.microsoft.com/en-us/documentation/articles/…,但如果您无法在文档中找到所需的信息,请随时在 SO 和 MSDN 上提问。我们会到达那里:)
  • 谢谢法比奥。到目前为止,您可以将来自事件中心的消息出列并将它们转储到 DocumentDB 中的简单性给我留下了深刻的印象。干得好!
  • 在 azure 函数中使用错误的变量也可能导致没有编译时错误,但会导致运行时错误,例如“内部服务器错误”。
  • 感谢法比奥的帮助
猜你喜欢
  • 2020-04-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-02
  • 1970-01-01
相关资源
最近更新 更多