2011-03-15 9 views
1

C#のアプリケーション設定をXML以外の形式でシリアル化できますか?自分ができるという理論を裏付けるものは何も見つかりません。具体的には、私が保存しようとしている形式は、protobuf-net経由のプロトコルバッファ形式です。C#のアプリケーション設定をXML(protobuf-net)以外の形式でシリアル化できますか?

「手で」保存ファイルに書き込むことができない場合、アプリケーション設定を保存するためにVisual Studio(2010)が使用するパスを取得するにはどうすればよいですか?私はこの問題は、Visual Studioは、実際に自分のアプリケーションの設定を保存しているということです

\ \のAppData \ローカル\ $ {会社名} \ $ {アプリケーション名} ...パス

を得ることができます私は希望

ような何か... \のAppData \ローカル\ $ {会社名} \ $ {アプリケーション名} .exe_Url_uzttbld0ofvuokf2y4ynfn05v334i4tp \

my XML設定ファイルとprotobuf-netファイルが同じ場所に表示されます。

答えて

2

(あなたがリサイズやWPFアプリケーションを書いていると仮定。Webアプリケーションのためのルールが異なります)

をあなたはExeConfigurationFileMapクラスを通して、あなたの実行可能ファイルの設定ファイルの場所を見つけることができます。ただし、アプリケーションのインストール方法に応じて、コードにこれらの場所すべてへの書き込みアクセス権がない可能性があります。

標準設定ファイルの形式を変更することはできません。 System.Configuration名前空間のクラスは、XML構成ファイルのみを認識します。 protobuf-netファイルのシリアル化/逆シリアル化のサポートを書く必要があります。System.Configuration名前空間を使用する必要がある場合は、ファイルの内容を標準の設定ファイルと同期させる必要があります。

0

私はその後、実行時に使用すると、[ファイル]を取得するために定期設定フレームワークを使用することができ、すなわち

<fooSettings source="myfile.bin"/> 

、しかし、あなたは自明設定としてパスを保存することができ、メイン設定自体には手を触れないだろうパスからデシリアライズします。

私はそれがクラシックユースケースであることがわかりませんが、動作するはずです。人々は一般的に、人間が読めるように設定されていて、メモ帳で編集できるようにしています。

関連する問題