問題タブ [applicationsettingsbase]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - ジェネリックリストの保存ApplicationSettingsBaseを使用する
ApplicationSettingsBaseを使用してList<Foo>を保存しようとしていますが、リストが入力されていても、次の情報しか出力されません。
Fooは次のように定義されます。
ApplicationSettingsBaseがList<Foo>を保存できるようにするにはどうすればよいですか?
.net - .NET SettingsProvider/ApplicationSettingsBaseキャッシング
.NETSystem.Configuration.SettingsProviderとApplicationSettingsBaseを使用して構成を処理するコードを見ています。
データベースをデータストアとして使用するSettingsProviderから派生したクラスがあり、次にApplicationSettingsBaseから継承し、[SettingsProvider(typeof(MySettingsProvider))]属性を持つ他の設定クラスがあります。
問題は、これらの設定クラスを複数のアプリケーションで使用していることですが、最初にロードされたときに、構成値を永続的にキャッシュしているように見えます。問題は、あるアプリケーションで設定が変更された場合、他のアプリケーションはどこにでもキャッシュされるため、次の再起動まで設定を取得しないことです。
私の質問は、SettingsProvider実装、またはApplicationSettingsBaseから派生したクラスに値をキャッシュせず、設定にアクセスするたびにデータストアを再クエリする方法はありますか?有効な答えは、これらのクラスがマルチアプリケーション環境での使用を意図していないということかもしれません...
c# - リストにカスタム オブジェクトを追加する理由コンストラクターを介した ApplicationSettingsBase では機能しませんか?
これは、別の SO の質問と密接に関連しています。
List<Foo>
以下の例を使用して、コンストラクターを介してリストに新しい Foo を追加するのに対し、Foo の各プロパティが明示的に設定されている場所に新しい Foo を追加すると、メソッドがデータを正しく格納する理由を誰かが説明してくれませんかApplicationSettingsBase.Save()
(コンストラクターがプロパティ値を設定する場合) ) 動作しません?ありがとう!
c# - ApplicationSettingsBaseのFileNotFoundException
アプリケーションをデバッグするとき、Visual Studioで例外の中断が有効になっていると、常に次のエラーが発生します。例外でbreakを使用しているので、これは本当に私を悩ませています。面白いのは、続行しても機能することです(StringCollectionがロードされます)。
メッセージは次のとおりです。
ファイルまたはアセンブリ'System.XmlSerializers、Version = 4.0.0.0、Culture = neutral、PublicKeyToken=b77a5c561934e089'またはその依存関係の1つを読み込めませんでした。システムは、指定されたファイルを見つけることができません。
例外の原因となっているコードは次のとおりです(デザイナーが生成)
エラーを表示する空のテストアプリケーションを作成しようとしましたが、例外は発生しませんでした。私たちのプロジェクトは巨大なので、原因を見つけるのは難しいです。たぶん、このサイトの誰かがこれを解決する方法の手がかりを持っています。
c# - .NET ApplicationSettingsBaseロードするたびにUpgrade()を呼び出す必要がありますか?
から派生したアプリケーション設定がありますApplicationSettingsBase
。アプリの新しいバージョンをプッシュするときは、次のように呼び出す必要があります。
(メタデータから)
この投稿のように、設定をアップグレードする必要があるかどうかを判断するためのトリッキーな方法がいくつかあります。これは、設定を1回だけアップグレードするように思えます。これで、アプリケーションの現在のバージョンを設定に保存し、設定をインスタンス化するたびに比較できます。現在のバージョンと異なる場合は、アップグレードできます。
Upgrade()
私の質問は、設定をインスタンス化するたびに電話をかけないのはなぜですか?そうすれば、私は決して時代遅れになることはないでしょう。
wpf - MVVMとSettingsBase
こんにちは私は現在、開発中のWPFアプリにMVVMを実装しています。2つの別々のプロジェクトを使用してViewModelとViewsを実装しました。ビューのみがViewModelから参照しています。ただし、設定クラス(プロジェクトのプロパティの[設定]ダイアログを使用してVisual Studioによって自動生成される)の情報がViewModelに必要になるようになりました。ViewModelはViewのクラスを参照するべきではなく、Settingsクラスにも内部修飾子があるため、これを行うにはどうすればよいですか。
これについての提案が必要です...私はロケーターパターンを持つmvvm-lightを使用しています。
ありがとう
c# - 単体テスト中に ApplicationSettingsBase は構成ファイルをどこに保存しますか?
バックグラウンド コンテキスト: ApplicationSettingsBase から派生してアプリケーションの構成設定のカスタム セットを保存していますが、手動テストは正常に機能しており、構成セットは問題なく保存されています。
また、ConfigSettings 機能の単体テストを行い、シリアル化解除と複数の設定セットの保存 (さまざまな SettingsKeys を使用) の両方が機能していることを確認したいと考えていました。私が選んだ単体テスト フレームワークは NUnit です。
私の TextFixtureSetUp メソッドは次のようになります。
私の実際のアプリケーションでは、構成設定が保存されているようです
しかし、単体テストで設定が保存されている場所が見つからないようです。つまり、テストは成功しているので、デシリアライゼーションは (おそらく) 機能していますが、ディスク上のどこに書き込まれているのか正確にはわかりません。また、ApplicationSettingsBase クラスには、パスを保存します。
誰にもアイデアはありますか?
マット・シューバート
アップデート
何が起こっているのか分かりました。私は Resharper を使用して Visual Studio 内から NUnit テストを実行していましたが、Resharper は独自の分離された AppDomain を作成します。したがって、ConfigSettings は次の場所に保存されていました。
(JetBrains は Resharper の背後にある会社です)
コマンドラインからビルドスクリプトを使用してこれをテストしたところ、NUnit が同様のことを行うことがわかったので、ConfigSettings は
これが同様の質問をしている他の人の助けになることを願っています! :)
c# - ApplicationSettingsBase を使用してカスタム クラスをユーザー設定に保存するにはどうすればよいですか?
カスタム クラスをユーザー設定に保存しようとしていますが、うまくいきません。
Visual Studio 2010 でターゲット フレームワーク = ".NET Framework 4" のテスト プロジェクトを作成しました。メイン フォームには、プレーン テスト文字列とカスタム クラスの「タイトル」フィールドを表示および編集するための 2 つのテキスト ボックスがあります。設定をロードおよび保存するための 2 つのボタンと一緒に。
最後に、「TestString」(プレーンな文字列値) と TestData (MyDataClass のタイプ) の 2 つの設定を追加しました。プロジェクトの [Properties.Settings] タブで [タイプ] ドロップダウン リストから [参照...] を選択し、手動で「MyUserSettingsTest」と入力してこれを行いました。 .MyDataClass" を [選択されたタイプ] ボックスに追加します。これは、最初は使用可能なタイプのリストに表示されませんでしたが、その後表示されるためです。)
アプリケーションを起動して LoadSettings をクリックすると、イベント ハンドラーはプレーン文字列と MyData をロードします。これが失敗した場合は、MyDataClass の新しいインスタンスを作成します。次に、フォームのプレーン文字列とテスト データのタイトルを編集し、[設定を保存] をクリックします。その後、値を再編集すると、LoadSettings を再度クリックすると、最後に保存された値が両方の値に対して期待どおりに復元されます。ここまでは順調ですね。
問題は、アプリケーションを終了して再起動すると、プレーンなテスト文字列は正常に復元されますが、MyData オブジェクトは復元されないことです! 明らかに、コードは MyData をメモリに永続化していますが、永続ストアには永続化していませんか?
メイン フォーム コードは次のとおりです。
私のテストデータクラスのコードは次のとおりです。
それが役立つかどうかはわかりませんが、自動生成された app.config ファイル (TestString の設定が含まれていますが、TestData ではありません!!?) は次のとおりです。
自動生成された Settings.Designer.cs ファイルは次のとおりです。
私が間違っていること、またはカスタムクラスをユーザー設定に適切に保持するために何をする必要があるかを誰か教えてください。
.net - .NET: ApplicationSettingsBase が信頼できない?
アプリケーション設定を使用する大規模なアプリケーションでは、一部の設定が保存されないことがあります。
次のコードを実行すると、すべて正常に動作します。
しかし、このコード
Y
はへの最初の呼び出し中にのゲッターを呼び出しますSave()
が、 への 2 回目の呼び出し中には呼び出しません。Save()
の値は、Y
書き込まれた XML ファイルで変更されません。
もちろん、コードはより複雑で、設定ははるかに複雑で、ステートメントは次から次へと適切ではありませんが、基本的にはこのように機能します。簡単なプログラムでこれを再現しようとしましたが、成功しませんでした (まだ?)。
ところで:設定ファイルは常に正しく書き込まれます。処理済みまたは未処理の例外はありません。
まだ調査中ですが、お聞きしたいのですが、ApplicationSettingsBase
確実に動作していますか? これに関する経験はありますか?
ありがとうございました!