我正在尝试使用Azure功能中的扩展,如此问题所示,但无法使其工作。
我的代码看起来像这样:(预编译,消费计划)
public static class FirstFunction
{
[FunctionName("FirstFunction"),]
public static void Run([TimerTrigger("0 */5 * * * *", RunOnStartup = true)]TimerInfo myTimer, TraceWriter log)
{
log.Info($"Started = { TestExtension.Started }");
log.Info($"C# Timer trigger function executed at: {DateTime.Now}");
}
}
public class TestExtension : IExtensionConfigProvider
{
public static bool Started = false;
public void Initialize(ExtensionConfigContext context) {
Started = true;
Console.WriteLine("TestExtensionConsole");
context.Trace.Error("TestExtension");
throw new Exception("TextExtensionException");
}
}
,但是在运行时什么也没发生。我看到了计时器Started = false
的日志,但别无其他。
我需要启用扩展名吗?
在启动上运行代码并不是IExtensionConfigProvider
的目的。它被设计为用户创建自定义绑定的可扩展点。
因此,除非您的功能使用自定义绑定,否则IExtensionConfigProvider
的实现将不会由运行时主机自动加载,请参见代码。
您所指的答案的作者是使用他的扩展名来用自定义绑定来实施依赖注入,因此它对他有用。
如果您打算使用扩展程序进行自定义绑定,则在功能中使用该绑定,并且扩展名将开始加载。