1次元の文字列配列をappSettings
のエントリとして保存したいのですが。要素自体にこれらの文字を含めることができるため、,
または|
で要素を単純に分離することはできません。
配列をJSON
として保存し、JavaScriptSerializer
を使用して逆シリアル化することを考えていました。
これを行う「正しい」/より良い方法はありますか?
(私のJSON
アイデアはちょっとハッキーな気がします)
AppSettingsを System.Collections.Specialized.StringCollection
。
var myStringCollection = Properties.Settings.Default.MyCollection;
foreach (String value in myCollection)
{
// do something
}
各値は改行で区切られます。
こちらがスクリーンショットです(ドイツ語IDEとにかく役立つかもしれません)
整数の場合、私は次の方法がより速く見つけました。
まず、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();
文字列の場合は簡単で、次のコードをweb.config
ファイルに追加するだけです。
<add key="myStringArray" value="fred,Jim,Alan" />
その後、次のようにして値を配列に取得できます。
var myArray = ConfigurationManager.AppSettings["myStringArray"].Split(',');
この目的で、カスタム構成セクション/コレクションの使用を検討することもできます。ここにサンプルがあります:
<configSections>
<section name="configSection" type="YourApp.ConfigSection, YourApp"/>
</configSections>
<configSection xmlns="urn:YourApp">
<stringItems>
<item value="String Value"/>
</stringItems>
</configSection>
また、この優れた Visual Studioアドイン をチェックして、.NET構成セクションをグラフィカルに設計し、必要なすべてのコードとスキーマ定義(XSD)を自動的に生成することもできます。