web-dev-qa-db-ja.com

文字列配列をappSettingsに保存しますか?

1次元の文字列配列をappSettingsのエントリとして保存したいのですが。要素自体にこれらの文字を含めることができるため、,または|で要素を単純に分離することはできません。

配列をJSONとして保存し、JavaScriptSerializerを使用して逆シリアル化することを考えていました。

これを行う「正しい」/より良い方法はありますか?

(私のJSONアイデアはちょっとハッキーな気がします)

26
Greg

AppSettingsを System.Collections.Specialized.StringCollection

var myStringCollection = Properties.Settings.Default.MyCollection;
foreach (String value in myCollection)
{ 
    // do something
}

各値は改行で区切られます。

こちらがスクリーンショットです(ドイツ語IDEとにかく役立つかもしれません)

enter image description here

24
Tim Schmelter

整数の場合、私は次の方法がより速く見つけました。

まず、app.configに整数値をコンマで区切ってappSettingsキーを作成します。

<add key="myIntArray" value="1,2,3,4" />

次に、LINQを使用して値を分割してint配列に変換します

int[] myIntArray =  ConfigurationManager.AppSettings["myIntArray"].Split(',').Select(n => Convert.ToInt32(n)).ToArray();
10
akd

文字列の場合は簡単で、次のコードをweb.configファイルに追加するだけです。

<add key="myStringArray" value="fred,Jim,Alan" />

その後、次のようにして値を配列に取得できます。

var myArray = ConfigurationManager.AppSettings["myStringArray"].Split(',');
9
Ed Homer

この目的で、カスタム構成セクション/コレクションの使用を検討することもできます。ここにサンプルがあります:

<configSections>
    <section name="configSection" type="YourApp.ConfigSection, YourApp"/>
</configSections>

<configSection xmlns="urn:YourApp">
  <stringItems>
    <item value="String Value"/>
  </stringItems>
</configSection>

また、この優れた Visual Studioアドイン をチェックして、.NET構成セクションをグラフィカルに設計し、必要なすべてのコードとスキーマ定義(XSD)を自動的に生成することもできます。

5
Kibria