Question

How to have array or list like information in app.config? I want user to be able to put as many IPs as possible (or as needed). My program would just take whatever specified in app.config. How to do this?

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <appSettings>
    <add key="ip" value="x" />
    <add key="ip" value="y" />
    <add key="ip" value="z" />
    </appSettings>
</configuration>



public string ip = ConfigurationManager.AppSettings["ip"];
Était-ce utile?

La solution

The easiest way would be a comma separated list in your App.config file. Of course you can write your own configuration section, but what is the point of doing that if it is just an array of strings, keep it simple.

<configuration>
  <appSettings>
    <add key="ips" value="z,x,d,e" />
  </appSettings>
</configuration>

public string[] ipArray = ConfigurationManager.AppSettings["ips"].Split(',');

Autres conseils

You can set the type of a setting in the settings designer to StringCollection, which allows you to create a list of strings.

Screenshot

You can later access individual values as Properties.Settings.Default.MyCollection[x].

In the app.config file this looks as follows:

<setting name="MyCollection" serializeAs="Xml">
<value>
    <ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
        <string>Value1</string>
        <string>Value2</string>
    </ArrayOfString>
</value>
</setting>

In App.config,

<add key="YOURKEY" value="a,b,c"/>

In C#,

STRING ARRAY:

string[] InFormOfStringArray = ConfigurationManager.AppSettings["YOURKEY"].Split(',').Select(s => s.Trim()).ToArray();

LIST :

 List<string> list = new List<string>(InFormOfStringArray);
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top