none
カスタム構成セクションの作成方法と、呼び出し方法について RRS feed

  • 質問

  • カスタム構成セクションの作成方法については、 http://msdn.microsoft.com/ja-jp/library/2tw134k3(VS.80).aspx を読んで見ましたが

    実に分かり難い。

    Windowsアプリの初期設定ファイルを、App.configで行おうと試行錯誤していまして、次のような内容にしたいと思います。

    「App.config」

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
     <personalGroupA>
      <personal familyName="Yamato" firstName="Takeru" sex="0"/>
     </personalGroupA>
     <personalGroupB>
      <add key="BaudRate" value="9600" />
     </personalGroupB>
    </configuration>

    この仕様に合いそうな参考URL(http://www.digi-con.co.jp/tech/node/28)・・・・、何ですが、

    具体的な使い方などで、理解できずに居ます。

    何方か解説、および、使い方(呼び出し方も)などをして頂けませんか。

    2010年10月6日 9:01

すべての返信

  • 下記の記事のほうが、解説がわかりやすいかもしれません。

    http://blogs.wankuma.com/tatsumihr/articles/79793.aspx

     


    なかむら(http://d.hatena.ne.jp/griefworker)
    • 回答の候補に設定 山本春海 2010年11月2日 1:20
    2010年10月6日 10:41
  • ご回答有難うございます。

    サンプルページを、そのままコピーしてみましたら、「メッセージ 1 要素 'myCustomSection' のスキーマ情報が見つかりませんでした」といったメッセージが出てきます。

     何故だろう?

    2010年10月7日 0:44
  • App.configを、開いたままでビルドしていたから発生したメッセージでした。 墓穴。

    で、やれやれと思って実行してみたら、 (http://blogs.wankuma.com/tatsumihr/articles/79793.aspx)

    // App.config を読み込む
    MyHandler myHandler = (MyHandler)ConfigurationManager.GetSection("myCustomSection");   ← この部分で、エラー発生。
    textBox1.Text = "fileName属性: " + myHandler.FileName + "\r\n";
    

     

    エラー内容

    myCustomSection のための構成セクション ハンドラーを作成中にエラーが発生しました。: ファイルまたはアセンブリ 'ConfigurationStudyApplication'、またはその依存関係の 1 つが読み込めませんでした。指定されたファイルが見つかりません。

    これの対応方法を、知っていたら教えてください。

    よろしくお願いします。

    2010年10月7日 4:15
  • 作成しているプロジェクトの出力アセンブリ名が「ConfigurationStudyApplication」になっていますか?

    <section name="myCustomSection" type="ConfigurationStudyApplication.MyConfigSectionHandler.MyHandler, ConfigurationStudyApplication"/>
    
    

    type 属性で指定しているのは、クラスの namespace を含めた名前と、アセンブリ名です。この箇所を作成しているプロジェクトにあわせて変更する必要があると思います。

     


    なかむら(http://d.hatena.ne.jp/griefworker)
    2010年10月8日 0:50
  • 返事が、遅れてすみません。

    >作成しているプロジェクトの出力アセンブリ名が「ConfigurationStudyApplication」になっていますか?

    いいえ。「Test_ConfigurationStudyApplication」にしています。

     

    >type 属性で指定しているのは、クラスの namespace を含めた名前と、アセンブリ名です。この箇所を作成しているプロジェクトにあわせて変更する必要があると思います。

    namespace とアセンブリ名を、ConfigurationStudyApplicationに書き換えるとエラーになります。

    具体的には、どのようにしたら良いですか。 

     

    初歩的な質問でしょうけれども、よろしくお願いします。

    2010年10月12日 2:06
  • もしかして、MyHandlerを作成したプロジェクトと、テスト用のプロジェクトに分かれていたりしますか?

    あと、MyHandlerが定義されている名前空間は何でしょうか?

     


    なかむら(http://d.hatena.ne.jp/griefworker)
    2010年10月12日 2:25
  • プロジェクト名を、「Test_ConfigurationStudyApplication」として、

    ソースコードは、参考URL(http://blogs.wankuma.com/tatsumihr/articles/79793.aspx)を丸ごとコピーしました。

    winアプリで作りますから、ボタンを押下されたら「

    アプリケーションから App.config を読み込もう

    」の節のプログラムを実行させるようにしました。

     

    当然、namespace は、Test_ConfigurationStudyApplication となっています。

    2010年10月12日 4:31
  • プロジェクト名・出力アセンブリ名・MyHandlerが定義されている名前空間がすべて「Test_ConfigurationStudyApplication」なのだとしたら、app.config を下記のように修正すればいいと思います。

    <section name="myCustomSection" type="Test_ConfigurationStudyApplication.MyHandler, Test_ConfigurationStudyApplication"/>
    
    

    なかむら(http://d.hatena.ne.jp/griefworker)
    2010年10月12日 5:06
  • やっぱり、エラーになる。

    // App.config を読み込む
    MyHandler myHandler = (MyHandler)ConfigurationManager.GetSection("myCustomSection");   ← この部分で、エラー発生。
    textBox1.Text = "fileName属性: " + myHandler.FileName + "\r\n";
    

     

    エラー内容

    myCustomSection のための構成セクション ハンドラーを作成中にエラーが発生しました。: ファイルまたはアセンブリ 'Test_ConfigurationStudyApplication'、またはその依存関係の 1 つが読み込めませんでした。指定されたファイルが見つかりません。 (C:\......\Test_ConfigurationSection\bin\Debug\ConfigurationStudyApplication.vshost.exe.config line 4)

     

    何だろう ?! 言われた通りにした筈なんだけど・・・。

    2010年10月12日 7:31