5

app.config ファイル内にファイル名を入れて、コードで使用することは可能ですか?

たとえば、次のコードは完全に機能します。

string folder = @"C:\CDR_FTP1\ttfiles_exported\";

app.config ファイルから上記の値を取得したい場合

  1. それは可能ですか?
  2. 構文はどうなりますか?

たとえば、app.config 内で、次のようなものを試すことができます。

<add key="InputDir" value=@"D:\CDR_FTP1\ttfiles_exported\" />

次のエラーが発生するため、「@」を追加できません。

"The character '@', hexadecimla value 0x40 is illegal at the beginning of an XML name."

以下のようにコードで使用しようとすると問題ありませんが、アプリケーションが正しく読み取るために「@」をどこにどのように貼り付ける必要がありますか?

string folder = ConfigurationSettings.AppSettings["InputDir"];
4

2 に答える 2

9

キリルの答えを拡張するには:

XML 属性の特殊文字は、C# 文字列の特殊文字とは異なります。

C# では、文字 '\' は文字列エスケープ文字であり、おそらくご存知のように、行末の '\n' などのエスケープ シーケンスを示すために使用されます。したがって、「\\」または @"" を使用してエスケープする必要があります。

XML では、'\' は属性値内で特別な意味を持たず、そのまま使用できます。これは、特に「&」および「"」文字には当てはまりません。値を含めたい場合:

M & M "The chocolates"

app.config では、次のようにエスケープする必要があります。

<add key="SomeString" value="M &amp; M &quot;The chocolates&quot;" />
于 2013-01-08T22:26:49.417 に答える
9

使用するだけです:

<add key="InputDir" value="D:\CDR_FTP1\ttfiles_exported\" />

\XML 属性でエスケープする必要はありません。

于 2013-01-08T22:14:44.803 に答える