C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[6]: 設定ファイルに設定値が無い場合(app.config)


(過去ログ 98 を表示中)

[トピック内 7 記事 (1 - 7 表示)]  << 0 >>

■58421 / inTopicNo.1)  設定ファイルに設定値が無い場合(app.config)
  
□投稿者/ そばじろう (1回)-(2011/04/04(Mon) 16:50:51)

分類:[VB.NET/VB2005 以降] 

はじめまして。

開発環境 vb.net2005

・行いたい事
設定ファイルに設定値が無い場合(app.config)にエラーにしたい


現在、設定ファイルを利用して、任意のパラメータを、
外部から読み込むプログラムを作成しています。

vb.net の「設定」で、設定
(app.config applicationSettings xxx.My.MySettingsに定義されます)

<setting name="hoge" serializeAs="String">
<value>あいうえお</value>
</setting>

この値は、利用者が変更する可能性があります。
<value>かきくけこ</value>

変更した場合、変更値が適用され問題はありません。

しかし、利用者がこのXML部分を削除した場合に、エラーを出力したいのですが、
vb.net の「設定」で、設定した、初期値<value>あいうえお</value>が表示されます。

これは、vb.netの仕様でしょうか?もしくは、他にも定義されている場所が存在するのでしょうか?

ご存じの方、アドバイスよろしくお願いいたします。


引用返信 編集キー/
■58422 / inTopicNo.2)  Re[1]: 設定ファイルに設定値が無い場合(app.config)
□投稿者/ すなかけ (1回)-(2011/04/04(Mon) 17:03:18)
No58421 (そばじろう さん) に返信
> しかし、利用者がこのXML部分を削除した場合に、エラーを出力したいのですが、
> vb.net の「設定」で、設定した、初期値<value>あいうえお</value>が表示されます。

IDEから実行するとapp.configは書き換えられてしまうと思うのですが、
直接EXEを起動するとどうなりますか?
引用返信 編集キー/
■58424 / inTopicNo.3)  Re[2]: 設定ファイルに設定値が無い場合(app.config)
□投稿者/ そばじろう (2回)-(2011/04/04(Mon) 17:18:10)

> IDEから実行するとapp.configは書き換えられてしまうと思うのですが、
> 直接EXEを起動するとどうなりますか?

すいません。説明が足りませんでした。
以下の順序で作業を行っています。

IDEで値設定
ビルド
作成されたapp.configを修正(XMLを削除しています)
EXEを実行

この際に、質問内容の現象が起きます。
(なお、EXE実行時、.netは立ち上がったままです。)

よろしくお願いいたします。

引用返信 編集キー/
■58425 / inTopicNo.4)  Re[3]: 設定ファイルに設定値が無い場合(app.config)
□投稿者/ shu (600回)-(2011/04/04(Mon) 17:31:35)
No58424 (そばじろう さん) に返信

設定画面で設定した値はSettings.Designer.vbに
既定値の属性として書き込まれます。app.configに対応する値がない
場合は既定値が使用されます。
引用返信 編集キー/
■58426 / inTopicNo.5)  Re[4]: 設定ファイルに設定値が無い場合(app.config)
□投稿者/ そばじろう (3回)-(2011/04/04(Mon) 17:37:58)
アドバイスありがとうございます。

> 設定画面で設定した値はSettings.Designer.vbに
> 既定値の属性として書き込まれます。app.configに対応する値がない
> 場合は既定値が使用されます。

教えていただいた内容より、
・設定ファイルに値が存在しない場合、既定値が適用される
・規定値が適用されるので、値が存在しないエラーは、発生しない。

この認識で、問題ないでしょうか?

よろしくお願いいたします。


引用返信 編集キー/
■58427 / inTopicNo.6)  Re[5]: 設定ファイルに設定値が無い場合(app.config)
□投稿者/ shu (601回)-(2011/04/04(Mon) 17:51:53)
No58426 (そばじろう さん) に返信

> 教えていただいた内容より、
> ・設定ファイルに値が存在しない場合、既定値が適用される
> ・規定値が適用されるので、値が存在しないエラーは、発生しない。
>
> この認識で、問題ないでしょうか?
認識は正しいです。

ただ、どうしてもExe.Configの中身を重要視したい場合は、
Dim val as String = System.Configuration.ConfigurationManager.AppSettings(<Key名>)
※System.Configurationの参照が必要
とすればNothingが返ってくるので判断は可能です。
引用返信 編集キー/
■58428 / inTopicNo.7)  Re[6]: 設定ファイルに設定値が無い場合(app.config)
□投稿者/ そばじろう (4回)-(2011/04/04(Mon) 18:00:52)
> ただ、どうしてもExe.Configの中身を重要視したい場合は、
> Dim val as String = System.Configuration.ConfigurationManager.AppSettings(<Key名>)
> ※System.Configurationの参照が必要
> とすればNothingが返ってくるので判断は可能です。

そんな事も可能なんですね!
大変勉強になりました。

今回の場合は、エラーは発生しない。という方向で進めたいと思います。

すなかけさん、shuさんありがとうございました。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -