技術をかじる猫

適当に気になった技術や言語、思ったこと考えた事など。

何か色々 appConfig 設定ファイル

SQL の設定

とりあえずSQL周りを色々弄る。
プロジェクト作って、プロジェクトを右クリック、「追加」「新しい項目」「LINQ to SQL」DataClasses1.dbml だかが作れる。
適当にサーバエクスプローラからテーブルをドロップする。
すると、設定がこんなん。

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <configSections>
    </configSections>
    <connectionStrings>
        <add name="SqlProviderSetting.Properties.Settings.testConnectionString"
            connectionString="Data Source=LILIACEAE\SQLEXPRESS;Initial Catalog=test;Integrated Security=True;Pooling=False"
            providerName="System.Data.SqlClient" />
    </connectionStrings>
</configuration>

接続設定が configration/connectionStrings/add で定義されてる。
他の設定も見たけど、sql 接続設定の基本形らしい。

基本的な値の取り出し

基本的な設定値。

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <appSettings>
    <add key="sample" value="SampleMessage"/>
  </appSettings>
</configuration>

を取り出す。

class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine(ConfigurationSettings.AppSettings["sample"]);
    }
}

でも取り出し方は .NET 1.0/1.1 系の取り出し方。

IConfigurationSectionHandler 経由

CS コードをざくざくっと書く。

[Serializable]
public class MyConfig : IConfigurationSectionHandler
{
    public object Create(object parent, object configContext, System.Xml.XmlNode section)
    {
        XmlSerializer ser = new XmlSerializer(this.GetType());
        return ser.Deserialize(new XmlNodeReader(section));
    }

    public static MyConfig Instance()
    {
        return (MyConfig)ConfigurationSettings.GetConfig("MyConfig");
    }

    public string StrParam
    {
        get;
        set;
    }
}

設定を書いてみる。

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="MyConfig" type="SqlProviderSetting.MyConfig, SqlProviderSetting"/>
  </configSections>
  <MyConfig>
    <StrParam>SampleMessage</StrParam>
  </MyConfig>
</configuration>

相変わらす .NET1.0/1.1 向け。

.NET 4.0 で意味あるかどうか微妙だw
とはいえ試験範囲ではしかたねぇ。