/// <summary> /// If an instance of <see cref="IApplicationInstanceInfo"/> is found, it is returned. /// Otherwise a default instance is returned. /// </summary> /// <param name="sp">Provider of services</param> /// <returns>An instance of <see cref="IApplicationInstanceInfo" /></returns> public static IApplicationInstanceInfo GetApplicationInstanceInfo(this IServiceProvider sp) { var appInfo = sp.GetService <IApplicationInstanceInfo>(); if (appInfo == null) { var config = sp.GetRequiredService <IConfiguration>(); appInfo = new ApplicationInstanceInfo(config, string.Empty); } return(appInfo); }
public static IApplicationInstanceInfo GetApplicationInstanceInfo(this IServiceCollection serviceCollection) { var sp = serviceCollection.BuildServiceProvider(); var appInfo = sp.GetServices <IApplicationInstanceInfo>(); if (!appInfo.Any()) { var config = sp.GetRequiredService <IConfiguration>(); var newAppInfo = new ApplicationInstanceInfo(config, true); serviceCollection.AddSingleton(typeof(IApplicationInstanceInfo), newAppInfo); return(newAppInfo); } else { return(appInfo.First()); } }