Hay un buen artículo sobre el almacenamiento de listas (o cualquier objeto personalizado) en sus archivos app.config en Best Way Of Saving Lists in App.Config
En esencia, se crea un objeto que representa los datos.
public class MyConfig
{
public string[] myList;
public string someOtherValueIfYouWant;
}
Y escribir un gestor de configuración para que ...
public class ConfigSectionHandler : IConfigurationSectionHandler
{
public const string SECTION_NAME = "MyConfig";
public object Create(object parent, object configContext, XmlNode section)
{
string szConfig = section.SelectSingleNode("//MyConfig").OuterXml;
MyConfig retConf = null;
if (szConfig != string.Empty || szConfig != null)
{
XmlSerializer xsw = new XmlSerializer(typeof(MyConfig));
MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(szConfig));
ms.Position = 0;
retConf = (MyConfig)xsw.DeSerialize(ms);
}
return retConf;
}
}
Y esto le permite poner el siguiente código XML en el archivo app.config ...
aplicación Tell.config acerca de su sección de configuración fresco
<configSections>
<section name="MyConfig" type="ConfigSectionHandler,someAssembly" />
</configSection>
Y luego añadir su sección de configuración ...
<MyConfig>
<myList>First one</myList>
<myList>Second one</myList>
<myList>Keep going</myList>
<myList>And so on</myList>
<someOtherValueIfYouWant>some non array config</someOtherValueIfYouWant>
</MyConfig>
¿Cómo afectaría una lista separada por comas al rendimiento? Utilicé una cadena delimitada por comas en archivos de configuración antes y no noté ningún problema de rendimiento. – Tim
@Tim: acepto que el rendimiento probablemente no sea el controlador para esto, pero para 161 elementos, una lista separada por comas no es la solución más elegante en su archivo app.config. Dado que app.config es XML y será deserializado de todos modos, es mucho mejor almacenar sus datos en XML dentro de él. – Fenton