- PR -

[ASP.NET]Web.config configSectionsでXMLのFilePathと型を取得する方法(C#)

1
投稿者投稿内容
たると
会議室デビュー日: 2004/09/15
投稿数: 1
投稿日時: 2004-09-15 16:47
はじめまして。
現在 ASP.NET(Framework1.1SP1)Oracle9iで開発をしています。

<やりたいこと>
XMLでエラーコードとエラーメッセージの管理を行おうと思い
Web.configを使ってエラーメッセージが入っているXMLファイルの設定をあらかじめ
登録しておき、XMLファイルから自動的にファイル名称、型を取得したいのですが
ConfigurationSettins.GetConfig("セクション名")と書いてみても
XMLファイルで定義した型の指定に不備があり取得できません。
web.Configでtype指定をするときについて資料を探してみたのですが
よくわかりません。ソースにファイルパスのべたうちはやりたくないので
このやり方に限らずいい方法があったら教えていただけないでしょうか。

-------------------------Web.configの中身-----------------
<configuration>
<configSections>
<section name="xmlFilepath" type="System.Configuration.SingleTagSectionHandler, System" />←構成にエラーがあります。というエラーが発生

</configSections>
<xmlFilepath>
<add key="XMLFilePath"value=@"c:\\xxxx.xml"></add>
</xmlFilepath>
</configuration>


=======C#================================================
NameValueCollection nv=(NameValueCollection)ConfigurationSettings.GetConfig("XMLFilePath");
string []FileName = nv.GetValues(0);
XmlTextReader tr = new XmlTextReader(Filename[0]);←※Filenameをフルパス指定にするとうまく取得できます

XMLの定義------------------------------------------------------------------
<?xml version="1.0" encoding="utf-8" ?>
<Message>
<Error>
<Errmsg code="xxxxx1" message="システムエラー発生"></ErrorMessage>
<Errmsg code="xxxxx2" message="ダウンロード失敗"></ErrorMessage>
<Errmsg code="xxxxx3" message="アップロード失敗"></ErrorMessage>
</Error>
</Message>
kanai
ベテラン
会議室デビュー日: 2004/09/13
投稿数: 98
投稿日時: 2004-09-15 18:45
Web.configから設定値を読み込むだけでよければ、Web.configに
<appSettings>を追加して、ConfigurationSettings.AppSettings("キー")
で値を取得できると思います。

コード:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>

・・・(略)・・・

  <appSettings>
	<add key="key" value="value" />
  </appSettings>

</configuration>

なちゃ
ぬし
会議室デビュー日: 2003/06/11
投稿数: 872
投稿日時: 2004-09-15 22:19
「フルパス指定にするとうまくいく」というのは、どういう意味でしょうか?(絶対パスを指定すればエラーにならないってことですか?)

「XMLファイルから自動的にファイル名称、型を取得したい」の、型とは何のことでしょうか?

「web.Configでtype指定をするときについて」のtype指定とはどういう意味でしょうか?(上記の型と同じ意味ですか?)

引用:

たるとさんの書き込み (2004-09-15 16:47) より:
ConfigurationSettins.GetConfig("セクション名")と書いてみても
XMLファイルで定義した型の指定に不備があり取得できません。
-------------------------Web.configの中身-----------------
<section name="xmlFilepath" type="System.Configuration.SingleTagSectionHandler, System" />←構成にエラーがあります。というエラーが発生

<add key="XMLFilePath"value=@"c:\xxxx.xml"></add>

=======C#================================================
NameValueCollection nv=(NameValueCollection)ConfigurationSettings.GetConfig("XMLFilePath");


とりあえず、
SingleTagSectionHandlerは、<add 〜>の形式ではなく、指定した名称のタグ内に、属性を複数設定するためのセクションハンドラです。
SingleTagSectionHandlerは、Hashtableを返します。NameValueCollectionではありません。
NameValueCollectionで取得するには、NameValueSectionHandlerを指定する必要があります。

型指定とかtypeって意味は良く分かりませんが、とりあえず根本的な構成セクションの使い方から確認した方がいいと思います。

こだわる必要がなければ、kanaiさんのように<appSettings>でやってしまうのが簡単ですが(内容的にも、単体の設定項目っぽいですから、あえてセクションを追加する必要もなさそうですし)。
1

スキルアップ/キャリアアップ(JOB@IT)