private void OnDynamicDiagnosticSourceInvokerInvalidated(DiagnosticSourceAssembly.IDynamicInvoker dynamicInvoker, object state) { // This listener method is just here for demo purposes. It does not perform any business logic (but it could). Guid sessionId = (state is Guid stateGuid) ? stateGuid : Guid.Empty; ConsoleWrite.LineLine($"This {this.GetType().Name} noticed that a dynamic DiagnosticSource invoker was invalidated (session {sessionId})." + $" Some errors may be temporarily observed until stubs are re-initialized."); }
private void OnDynamicDiagnosticSourceInvokerInitialized(DiagnosticSourceAssembly.IDynamicInvoker dynamicInvoker) { ConsoleWrite.LineLine($"This {this.GetType().Name} noticed that an" + $" {nameof(DiagnosticSourceAssembly)}.{nameof(DiagnosticSourceAssembly.IDynamicInvoker)} became available." + $" DiagnosticSourceAssemblyName: \"{dynamicInvoker.DiagnosticSourceAssemblyName}\"."); Guid sessionId = Guid.NewGuid(); ConsoleWrite.LineLine($"Settng up {this.GetType().Name} listening session \"{sessionId}\"."); SubscribeToAllSources(); ConsoleWrite.LineLine($"Finished settng up {this.GetType().Name} listening session \"{sessionId}\"."); dynamicInvoker.SubscribeInvalidatedListener(OnDynamicDiagnosticSourceInvokerInvalidated, sessionId); }
private void OnDynamicDiagnosticSourceInvokerInitialized(DiagnosticSourceAssembly.IDynamicInvoker dynamicInvoker, object state) { Random rnd = (Random)state; ConsoleWrite.LineLine($"This {this.GetType().Name} noticed that an" + $" {nameof(DiagnosticSourceAssembly)}.{nameof(DiagnosticSourceAssembly.IDynamicInvoker)} became available." + $" DiagnosticSourceAssemblyName: \"{dynamicInvoker.DiagnosticSourceAssemblyName}\"."); int sessionId = rnd.Next(1000); ConsoleWrite.LineLine($"Initializing new Diagnostic Source generator session \"{sessionId.ToString("000")}\"."); CreateNewSource(ref _diagnosticSource); ConsoleWrite.LineLine($"Finsihed initializing new Diagnostic Source generator session \"{sessionId.ToString("000")}\"."); dynamicInvoker.SubscribeInvalidatedListener(OnDynamicDiagnosticSourceInvokerInvalidated, sessionId); }
private static void NotifyInitializationListeners(DiagnosticSourceAssembly.IDynamicInvoker initializedInvoker) { s_initializationListenersCollection.InvokeAll(initializedInvoker); }