public static T GetOrAdd <T>( [NotNull] this IServiceProviderDictionary serviceProviderDictionary, string key, [NotNull] Func <T> factory ) where T : class { if (serviceProviderDictionary == null) { throw new ArgumentNullException(nameof(serviceProviderDictionary)); } if (factory == null) { throw new ArgumentNullException(nameof(factory)); } if (!(serviceProviderDictionary[key] is T value)) { value = factory(); serviceProviderDictionary.Set(value); } return(value); }
public CCBuilder( IConventionScanner scanner, IAssemblyProvider assemblyProvider, IAssemblyCandidateFinder assemblyCandidateFinder, IServiceProviderDictionary properties ) : base(scanner, assemblyProvider, assemblyCandidateFinder, properties) { }
public HostBuilder( IConventionScanner scanner, IAssemblyCandidateFinder assemblyCandidateFinder, IAssemblyProvider assemblyProvider, DiagnosticSource diagnosticSource, IServiceProviderDictionary serviceProperties ) : base(scanner, assemblyCandidateFinder, assemblyProvider, diagnosticSource, serviceProperties) { }
/// <summary> /// Check if this is a test host (to allow conventions to behave differently during unit tests) /// </summary> /// <param name="serviceProviderDictionary">The properties</param> public static bool IsUnitTestHost([NotNull] this IServiceProviderDictionary serviceProviderDictionary) { if (serviceProviderDictionary == null) { throw new ArgumentNullException(nameof(serviceProviderDictionary)); } return(serviceProviderDictionary.GetHostType() == HostType.UnitTestHost); }
/// <summary> /// Get a value by type from the context /// </summary> /// <typeparam name="T">The type of the value</typeparam> /// <param name="serviceProviderDictionary">The properties</param> /// <param name="value">The value to save</param> public static void Set <T>([NotNull] this IServiceProviderDictionary serviceProviderDictionary, T value) { if (serviceProviderDictionary == null) { throw new ArgumentNullException(nameof(serviceProviderDictionary)); } serviceProviderDictionary[typeof(T)] = value; }
public static T Get <T>([NotNull] this IServiceProviderDictionary serviceProviderDictionary, string key) { if (serviceProviderDictionary == null) { throw new ArgumentNullException(nameof(serviceProviderDictionary)); } return((T)serviceProviderDictionary[key]); }
/// <summary> /// Initializes a new instance of the <see cref="RocketHostBuilder" /> class. /// </summary> /// <param name="builder">The builder.</param> /// <param name="scanner">The scanner.</param> /// <param name="assemblyCandidateFinder">The assembly candidate finder.</param> /// <param name="assemblyProvider">The assembly provider.</param> /// <param name="diagnosticSource">The diagnostic source.</param> /// <param name="serviceProperties">The service properties.</param> public RocketHostBuilder( IHostBuilder builder, IConventionScanner scanner, IAssemblyCandidateFinder assemblyCandidateFinder, IAssemblyProvider assemblyProvider, DiagnosticSource diagnosticSource, IServiceProviderDictionary serviceProperties ) : base(scanner, assemblyCandidateFinder, assemblyProvider, diagnosticSource, serviceProperties) { Builder = builder; Logger = new DiagnosticLogger(diagnosticSource); }
/// <summary> /// Initializes a new instance of the <see cref="ConventionTestHost" /> class. /// </summary> /// <param name="scanner">The scanner.</param> /// <param name="assemblyCandidateFinder">The assembly candidate finder.</param> /// <param name="assemblyProvider">The assembly provider.</param> /// <param name="diagnosticSource">The diagnostic source.</param> /// <param name="serviceProperties">The service properties.</param> /// <param name="loggerFactory">The logger factory.</param> /// <param name="environment">The environment.</param> internal ConventionTestHost( IConventionScanner scanner, IAssemblyCandidateFinder assemblyCandidateFinder, IAssemblyProvider assemblyProvider, DiagnosticSource diagnosticSource, IServiceProviderDictionary serviceProperties, ILoggerFactory loggerFactory, IRocketEnvironment environment ) : base(scanner, assemblyCandidateFinder, assemblyProvider, diagnosticSource, serviceProperties) { serviceProperties.Set(HostType.UnitTestHost); _loggerFactory = loggerFactory; _environment = environment; _logger = ServiceProperties.Get <ILogger>(); }
/// <summary> /// Initializes a new instance of the <see cref="RocketFunctionHostBuilder"/> class. /// </summary> /// <param name="builder">The builder.</param> /// <param name="functionsAssembly">The functions assembly.</param> /// <param name="startupInstance">The startup instance.</param> /// <param name="environment">The environment.</param> /// <param name="scanner">The scanner.</param> /// <param name="assemblyCandidateFinder">The assembly candidate finder.</param> /// <param name="assemblyProvider">The assembly provider.</param> /// <param name="diagnosticSource">The diagnostic source.</param> /// <param name="serviceProviderDictionary">The service provider dictionary of values</param> public RocketFunctionHostBuilder( IWebJobsBuilder builder, Assembly functionsAssembly, object startupInstance, IRocketEnvironment environment, IConventionScanner scanner, IAssemblyCandidateFinder assemblyCandidateFinder, IAssemblyProvider assemblyProvider, DiagnosticSource diagnosticSource, IServiceProviderDictionary serviceProviderDictionary) : base(scanner, assemblyCandidateFinder, assemblyProvider, diagnosticSource, serviceProviderDictionary) { _startupInstance = startupInstance; _environment = environment ?? CreateEnvironment(); _logger = new DiagnosticLogger(DiagnosticSource); Builder = builder; FunctionsAssembly = functionsAssembly; }
/// <summary> /// Initializes a new instance of the <see cref="ConventionHostBuilder{TSelf}" /> class. /// </summary> /// <param name="scanner">The scanner.</param> /// <param name="assemblyCandidateFinder">The assembly candidate finder.</param> /// <param name="assemblyProvider">The assembly provider.</param> /// <param name="diagnosticSource">The diagnostic source.</param> /// <param name="serviceProperties">The properties.</param> protected ConventionHostBuilder( IConventionScanner scanner, IAssemblyCandidateFinder assemblyCandidateFinder, IAssemblyProvider assemblyProvider, DiagnosticSource diagnosticSource, IServiceProviderDictionary serviceProperties ) { Scanner = scanner; AssemblyCandidateFinder = assemblyCandidateFinder; AssemblyProvider = assemblyProvider; DiagnosticSource = diagnosticSource; ServiceProperties = serviceProperties ?? new ServiceProviderDictionary(); if (!Properties.TryGetValue(typeof(IConventionScanner), out var _)) { Properties[typeof(IConventionScanner)] = scanner; } if (!Properties.TryGetValue(typeof(IAssemblyProvider), out var _)) { Properties[typeof(IAssemblyProvider)] = assemblyProvider; } if (!Properties.TryGetValue(typeof(IAssemblyCandidateFinder), out var _)) { Properties[typeof(IAssemblyCandidateFinder)] = assemblyCandidateFinder; } if (!Properties.TryGetValue(typeof(DiagnosticSource), out var _)) { Properties[typeof(DiagnosticSource)] = diagnosticSource; } if (!Properties.TryGetValue(typeof(ILogger), out var _)) { Properties[typeof(ILogger)] = new DiagnosticLogger(diagnosticSource); } }
public CCBuilder(IConventionScanner scanner, IServiceProviderDictionary properties) : base( scanner, properties ) { }
/// <summary> /// Check if this is a test host (to allow conventions to behave differently during unit tests) /// </summary> /// <param name="serviceProviderDictionary">The properties</param> internal static HostType GetHostType(this IServiceProviderDictionary serviceProviderDictionary) => serviceProviderDictionary.TryGetValue(typeof(HostType), out var hostType) ? (HostType)hostType ! : HostType.Undefined;