2017-11-29 4 views
0

Azure関数の拡張を実験しています(this question)が、動作させることはできません。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からのログを見るが、他には何もない。

拡張機能などを有効にする必要はありますか?

答えて

1

起動時にコードを実行することは、まさにIExtensionConfigProviderの目的ではありません。カスタムバインディングを作成するための拡張ポイントとして設計されています。

したがって、関数がカスタムバインディングを使用していない限り、IExtensionConfigProviderの実装はランタイムホストによって自動的にロードされません。codeを参照してください。

あなたが指している答えの著者は、自分の拡張子をimplement Dependency Injectionにカスタムバインディングで使用していたので、彼のために働いています。

カスタムバインディングに拡張機能を使用する場合は、そのバインディングを関数で使用すると、拡張機能が読み込みを開始します。

+0

ありがとうございます。私はDIのために使用する予定ですが、まず小さなテストを行いました。 – adrianm

関連する問題