字符转义问题

本文关键字:问题 转义 字符 | 更新日期: 2023-09-27 18:18:46

我正在WPF应用程序上工作,现在我有一部分代码必须向我的app.config文件添加内容。

简单地说,我必须添加一个键值对作为一个特定元素的子元素,但当我试图添加它的转义符号正在改变,我不知道为什么。

我给你举个例子:

我想加上:

<add key="MyKey" value="&lt;add name=&quot;{0}&quot; /&gt;_#ss_dsa">

在appSettings标签后面。当我手动操作时,它可以工作,但当我试图通过代码添加它时,我这样做:

 var appPath=Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);
 var appConfigFile = Path.Combine( appPath, "MyApp.exe" ); 
 var config= ConfigurationManager.OpenExeConfiguration(appConfigFile);

然后:

config.AppSettings.Settings.Add("Key","Value");

应该加上<add key="Key" value="Value">

到app.config并且它确实,但是当我传递这个:

"&lt;add name=&quot;{0}&quot; /&gt;_#ss_dsa"

表示它转换成的值:

"&amp;lt;add name=&amp;quot;{0}&amp;quot; /&amp;gt;_#ss_dsa"

在app.config文件中。我真的不知道为什么会发生这种情况,我该如何解决它。如果有人能给点建议就太好了。

字符转义问题

期望的未转义。所以添加 unescaped:尝试添加:

blah.Add("MyKey", @"<add name=""{0}"" />_#ss_dsa");

其中中间的""是c#转义-这里的实际字符串是

<add name="{0}" />_#ss_dsa