private static IConfigurationSection GetSectionByEntry(IConfigurationRoot root, Type type) { MicroStrutLibraryExceptionHelper.IsNull(type, typeof(IConfigurationRootExtensions).FullName, LogLevel.Error, $"类型为空!"); ConfigurationEntryAttribute attribute = type.GetTypeInfo().GetCustomAttribute <ConfigurationEntryAttribute>(false); MicroStrutLibraryExceptionHelper.IsNull(attribute, typeof(IConfigurationRootExtensions).FullName, LogLevel.Error, $"属性类型为空!"); return(root.GetSection(attribute.Path)); }
public static object GetByEntry(this IConfigurationRoot root, Type type) { MicroStrutLibraryExceptionHelper.IsNull(type, typeof(IConfigurationRootExtensions).FullName, LogLevel.Error, $"类型为空!"); ConfigurationEntryAttribute attribute = type.GetTypeInfo().GetCustomAttribute <ConfigurationEntryAttribute>(false); MicroStrutLibraryExceptionHelper.IsNull(attribute, typeof(IConfigurationRootExtensions).FullName, LogLevel.Error, $"属性类型为空!"); var data = root.GetSection(attribute.Path).Get(type); if (data == null && attribute.Default) { data = Activator.CreateInstance(type); } return(data); }