質問

C#には、XMLではなく単純な構成ファイルを処理するための組み込みの方法がありますか?または、人気のある無料のライブラリがありますか?

私は、プログラマー以外が使用するためのシンプルなツールを作成していますが、構成編集用のUIを追加して複雑にしたくありません。ユーザー(コンピューターに十分な快適さ)がメモ帳で構成ファイルを開き、数行を編集/追加できるようにするだけです。だからこそ、XMLベースの構成ファイルを使用したくないのです。


編集:返信ありがとうございます!はい、xmlベースの設定を編集するために単純なUIをバインドするのは難しくありません。しかし、常に適切であるとは限りません。たとえば、非GUIアプリの場合、または非常にシンプルなアプリの場合、UIを追加して、最大限シンプルにする必要はありません。また、キー/ペア設定、ブロック、または空白行で区切られた設定のために、独自の設定パーサーを作成することも難しくありません。しかし、Googleのクイック検索ではxmlベースの設定の操作に関する多くのページが提供されるため、利用可能なものを知りたいだけです。

私はフルタイムのsw開発者ではなく、通常、私の同僚と私の人生を仕事で少し熱心にする小さなツールを作成します。

役に立ちましたか?

解決

通常、単純な構成のためにINIファイルを使用します。ネイティブWindowsのラッパーを提供する The Code Projectの記事があります。 Kernel32のINI関数

他のヒント

DotNet.Config という、私が書いたライブラリを試すことができます。

設定には単純なテキストベースのファイルを使用します。

構成は、次のような「config.properties」ファイルに保存されます。

size=12
dateTime=1/12/2014
name=Terry Tester
color=Blue

items.A=hello list
items.B=guten tag list
items.C=bonjour list

numbers.X=10
numbers.Y=20
numbers.Z=30

これには、命名規則に基づいて設定をキャストし、メンバー変数に直接適用する便利なローダーが含まれています(設定のグループを汎用リストにロードすることを含む)。

または、次の呼び出しで設定を取得できます:

  

AppSettings.Retrieve [" mySetting"]

サンプルはこちら

ここからコピーを入手できます: https://github.com/jknight/DotNet.Config

私はNiniが好きです。これは、構成ファイルにXMLを使用することを単純化しますが、INIファイルにも使用できます。

http://nini.sourceforge.net/

時間をかけて簡単なエディターを作成し、ユーザーを構成ファイルの編集業務から締め出すことにしたと思います。そうしないと、構成ファイルを台無しにすることでユーザーがシステムに注入する可能性のあるすべてのエラーをキャッチするために、大量のコードを記述する必要が生じる場合があります。ファイル形式を制御し、入力を制限するUIを利用できる場合、コードはよりシンプルになると思います。

しかし、ユーザーによっては、1行に1つのキー区切り値規則を選択することもできます。それを読むのは簡単です。

私が使用しているサードパーティ製ツールの1つには、ごく簡単な構成ファイルがあります。これは、次の形式の単純な自由形式のテキストファイルです。

keyword [args]

すべての行がキーワードで始まることを想定しており、その行以降のすべては単にキーワードの引数として使用されます。引数としてのキー/値ペアの概念はありません-単なるリストのようなものです。スペースは、その構成ファイルの区切り文字です。すべての実装で機能するとは限りませんが、その実装では機能します。

バインドは非常に簡単で、ユーザーがエディターとして利用できるバインドされたグリッドコントロールからXMLファイルを読み書きします。ソリューション。

ユーザーベースがかなり精通しているが、開発者だけではない場合は、おそらくプレーンテキストソリューションで十分でしょう。私の同僚がよく言うように-2ドルのショーに100ドルを入れる必要はありません。明らかに、それはあなたの特定の状況に依存します。

YAMLを使用できますが、利用可能なC#ライブラリはかなり未熟です。 YAMLはJSONのサブセットであり、代わりにこれを使用することもできます。これには、次のようなさまざまなパーサーがあります。 http://www.codeplex.com/Json 。LINQto JSonがサポートされています。

通常、構成をグリッドコントロールなどにバインドし、アプリケーション内で構成を編集できるようにします。すべてを基本的に名前/値のペアとして保持する場合、UIはそれほど必要ありません。

Win32 APIには、P / Invoke経由で簡単に呼び出せる便利な関数がいくつかあります。

設定ファイルを手動で編集するようにユーザーを招待/許可することはお勧めしません。効果的に予測および防止できない多くの種類の問題が発生する可能性があるためです。この状況に対処する最善の方法は、設定ファイル用のエディターを作成するか、設定を保存できる組み込みのグリッドインターフェイスを作成することだと思います。これにより、任意の形式で保存でき、不必要な困難を回避できます。

INI形式での保存については、他の回答が示唆しているように、 Nini または< href = "http://www.codeproject.com/KB/cs/cs_ini.aspx" rel = "nofollow noreferrer"> Kernel32のネイティブWindows INI関数のラッパー。ただし、組み込みのエディターアプローチを採用する場合は、代わりにXMLを簡単に使用できます。 .NET Frameworkの組み込みXML関数は非常に使いやすいです。

今、ユーザーが設定ファイルを手動で編集できるようにすることは大丈夫だと強く感じていますが、場合によっては、ユーザーグループが小さく、誰もが特に編集方法を訓練されている場合、それは望ましい解決策かもしれませんファイル。この方法を使用する場合は、INIファイルをお勧めします。INIファイルは、手動での編集、読み取りと解析、書き込みが非常に簡単であるためです。 two ライブラリこれについては前述しました。

要約すると、ユーザーがファイルを手動で編集することを許可せず、代わりに組み込みエディターを提供するなど、別のアプローチを検討する必要があると思いますが、もちろん、本当にしたい場合は、手動で編集することができます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top