■32588 / inTopicNo.3) |
Re[1]: 設定ファイル(UserSetting)について |
□投稿者/ biac (45回)-(2009/02/10(Tue) 11:07:46)
|
■No32572 (nyari さん) に返信 > 下記のサイトの、「別の設定のセットを使用する」を参考にして > ユーザ設定のファイルを独自に2つ追加してみました。 > > <http://msdn.microsoft.com/ja-jp/library/aa730869(vs.80).aspx#settingscs_topic5>
そこに書かれている通りに、 C# 2008 Exp. でやってみました。( "SpecialSettings" は "formASettings" に変えて。 ) ちゃんと出来ましたよ。 this.textBox1.Text = Properties.formASettings.Default.SettingForFormA; とか、動作しました。
> [発生手順] > @プロジェクト作成時に自動で作成されるSettings.settingへは何も項目を登録しない。 > Aプロジェクト-新しい項目の追加-設定ファイル-「formASettings.setting」を作成 > BAにて追加した設定ファイルへ項目を追加(例:PosX, int, 0) > C実際のソースにて、 > Properties.formASettings.Default.PosX; > と処理を追加し、設定ファイルに格納されているformASettingsのPosX参照時に例外が発生しています。 > エラーメッセージ「System.Windows.Forms.PropertyStore' に 'formASettings' の定義がありません。」 > > 但し、手順@にてSettings.settingへ項目を追加すると正常に参照が可能です。 > > やはりデフォルトで作成されるSettings.settingを使用しないと正常に動作しないのでしょうか??
…あ、 再現できました。 なにが違うかと思ったら、 手順 (1) ですね。 Settings.settings になにもしない (自動生成されたまま) と、 追加の settings を参照しても設定値が取れませんね。 ( C# 2008 では、 例外は出ませんでした。 ) Settings.settings にダミーでいいから、 なにか設定を書いてあげると、 ちゃんと取れるようになりました。
ということで、 なにかひとつだけでも (実際には使わなくていいから)、Settings.settings に設定を入れておけばよさそうです。
※ この挙動は仕様 …なのかな? どうしてもということであれば Connect でフィードバックを上げてみてもよいかとは思いますが、 それほど発生する状況はなさそうだし、 簡単に回避できるので、 修正してもらえるのは望み薄かと。
※ なお、 Settings.settings に設定が無くても、 app.config の configSections - sectionGroup に、 <section name="{プロジェクト名}.Properties.Settings" … の 1行が書いてあれば大丈夫みたいです。 (厳密に確認していませんが f(^^; )
|
|