3

私はまだ C# を使い始めたばかりです... WPF アプリケーションを作成していて、いくつかのユーザー アプリケーション設定を適用しようとしています。標準のアプリ設定 (int、double、string など) を簡単に挿入できます。WindowState のようなものが挿入されています。

Strings の代わりに、DirectoryInfo や FileInfo を保存可能な設定として使用したいと考えています。

選択された型: System.IO.File は、「抽象型はサポートされていません」というエラー メッセージを表示します。

抽象型を設定としてどのように実装できるので、これは理にかなっています。

選択されたタイプ: System.IO.FileInfo は、「タイプ 'System.IO.FileInfo' が定義されていません。」というエラー メッセージを表示します。

DirectoryInfo/FileInfo はアプリの設定として設定できませんか? 出来ますか?時間の価値はありますか?設定として使用できるものとそうでないものをどのように判断できますか?

ユーザー設定に関する私の経験は限られており、知識を広げようとしていますが、これには困惑しています。

編集: スクリーンショットをいくつか投稿しようとしましたが、どうやら新人すぎるようです。私はVisual Studioのアプリケーション設定で作業しています。

さらに注意:

http://msdn.microsoft.com/en-us/library/a65txexh.a​​spx

アプリケーション設定は、XML シリアライズ可能なデータ型、または ToString/FromString を実装する TypeConverter を持つ任意のデータ型として格納できます。最も一般的な型は String、Integer、および Boolean ですが、値を Color、Object、または接続文字列として格納することもできます。

DirectoryInfo di = new DirectoryInfo(@"C:\");
di.ToString();

ToString() があるので、何か不足していますか...

4

1 に答える 1

2

はい、これは不可能です。アプリケーション設定は、XML シリアル化を使用してシリアル化されます。クラスをシリアライズ可能にするための厳しい要件の 1 つは、パラメーターのないコンストラクターが必要なことです。どちらのクラスにもありません。

どちらのクラスにも文字列を取るコンストラクタがあるため、これは実際の問題ではありません。したがって、設定を文字列にすると、常に FileInfo または DirectoryInfo を取得できます。ただし、存在するファイル システム オブジェクトを参照する必要があります。それが問題になる場合は、独自のクラスを作成してください。

于 2010-08-26T21:05:32.360 に答える