web-dev-qa-db-ja.com

データのような配列またはリストを持つC#App.Config

App.configで情報のような配列またはリストを作成する方法は?ユーザーができるだけ多く(または必要に応じて)IPを配置できるようにします。私のプログラムはapp.configで指定されたものをすべて使用します。これを行う方法?

<?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"];
16
John Ryann

最も簡単な方法は、App.configファイル内のコンマ区切りリストです。もちろん、独自の構成セクションを作成することもできますが、それが単なる文字列の配列である場合、それを行うことのポイントは何ですか。

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

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

設定デザイナーで設定の種類をStringCollectionに設定すると、文字列のリストを作成できます。

Screenshot

後で個々の値にProperties.Settings.Default.MyCollection[x]としてアクセスできます。

app.configファイルでは、これは次のようになります。

<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>
14

App.configで、

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

C#では、

ストリングアレイ:

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

リスト:

 List<string> list = new List<string>(InFormOfStringArray);
6
Divya