Creé una forma de agregar dinámicamente SettingsProperty
a un archivo .NET app.config
. Todo funciona bien, pero cuando estoy lanzando mi aplicación la próxima vez solo puedo ver las propiedades que se crean en el diseñador. ¿Cómo puedo cargar el tiempo de ejecución de las propiedades?¿Cómo volver a cargar una propiedad de configuración creada dinámicamente la próxima vez?
Mi código para crear la SettingsProperty
tiene el siguiente aspecto:
internal void CreateProperty<T>(string propertyName)
{
string providerName = "LocalFileSettingsProvider";
System.Configuration.SettingsAttributeDictionary attributes = new SettingsAttributeDictionary();
System.Configuration.UserScopedSettingAttribute attr = new UserScopedSettingAttribute();
attributes.Add(attr.TypeId, attr);
System.Configuration.SettingsProperty prop;
SettingsProvider provider = ApplicationEnvironment.GlobalSettings.Providers[providerName];
prop = new System.Configuration.SettingsProperty(
propertyName,
typeof(T),
provider,
false,
default(T),
System.Configuration.SettingsSerializeAs.String,
attributes,
false,
false
);
ApplicationEnvironment.GlobalSettings.Properties.Add(prop);
ApplicationEnvironment.GlobalSettings.Reload();
}
Cuando la próxima ejecución pido la propiedad de configuración no pude encontrar ninguna de las propiedades creadas previosuly. No importa si llamo al ApplicationEnvironment.GlobalSettings.Reload();
o no.