/// <summary> /// Creates Instance of a generic collection ConfigInstance /// </summary> /// <param name="type">Type for generic ConfigInstance</param> /// <param name="identity">Configuration identity</param> /// <returns></returns> public static ConfigInstance CreateGenericCollectionInstance(Type type, ConfigurationIdentity identity) { var config = typeof(ConfigCollectionInstance <>); Type[] typeArgs = { type }; var configType = config.MakeGenericType(typeArgs); var result = (ConfigInstance)Activator.CreateInstance(configType); result.ConfigurationIdentity = identity; return(result); }
/// <summary> /// Initializes ConfigCollectionInstance with empty configuration /// </summary> /// <param name="type">Config Type</param> /// <param name="configurationIdentity">Configuration Identity</param> protected ConfigCollectionInstance(Type type, ConfigurationIdentity configurationIdentity) : base(type, true, configurationIdentity) { }
/// <summary> /// Initializes new ConfigInstance with name /// </summary> /// <param name="type">type of config</param> /// <param name="isCollection">is instance a collection</param> /// <param name="configurationIdentity">Configuration Identity</param> protected ConfigInstance(Type type, bool isCollection, ConfigurationIdentity configurationIdentity) : this(type, isCollection) { ConfigurationIdentity = configurationIdentity; }
/// <summary> /// Initializes ConfigInstance with supplied configuration /// </summary> /// <param name="config">configuration</param> /// <param name="configurationIdentity">Configuration identity</param> public ConfigInstance(TConfig config, ConfigurationIdentity configurationIdentity) : base(typeof(TConfig), false, configurationIdentity) { Configuration = config; }
/// <summary> /// Initializes ConfigInstance with empty configuration /// </summary> /// <param name="configurationIdentity">Configuration identity</param> public ConfigInstance(ConfigurationIdentity configurationIdentity) : base(typeof(TConfig), false, configurationIdentity) { Configuration = new TConfig(); }