我希望在我的Azure Functions中使用一些共享类,以避免重复代码。
我尝试创建一个空的C#函数,并在函数内部创建类,然后使用以下代码将其导入到其他函数中:
我尝试创建一个空的C#函数,并在函数内部创建类,然后使用以下代码将其导入到其他函数中:
#r "../Shared/Class.cs"
#r "../Shared/Class.cs"
首先,将您的共享代码放置在函数应用程序目录的根目录下的文件夹中(例如,“Shared”)。假设我将共享的Message.csx
类放在该文件夹中(例如,完整路径是D:\home\site\wwwroot\Shared\Message.csx
)。
要将其包含到您的函数中,请使用#load
命令:
#load "..\Shared\Message.csx"
using System;
using Microsoft.Azure.WebJobs.Host;
public static void Run(Message message, TraceWriter log)
{
log.Info($"C# Queue trigger function processed message: {message.Id}");
}
查看此处的帮助页面:此处以获取更多信息。默认情况下,该目录中的文件不会被跟踪更改。如果您想确保在该目录中的文件更改时,您的函数将拾取这些更改并重新编译,您可以将您的“共享”目录添加到host.json
中的watchDirectories
列表中。例如:
{
"watchDirectories": [ "Shared" ]
}
https://azure.github.io/AppService/2017/03/16/Publishing-a-.NET-class-library-as-a-Function-App.html
https://github.com/devkimchi/Precompiled-Azure-Functions-Revisited
您需要进入Azure功能的“平台功能”部分。
然后导航到开发工具->高级工具:
接下来,导航到工具->Zip Push Deploy:
接下来,在根文件夹内创建一个名为“Shared”的文件夹,如Microsoft文档中所建议的:
*.csx
文件之后,您可以编辑并放置您的代码,然后保存:
然后通过使用 #load
加载它来在 Azure 函数中重用该类:
当在Visual Studio中工作并寻找一种方法在函数应用程序内共享一些C#脚本文件时,可以这样做:
#load "..\Shared\MySharedCode.csx"