【问题标题】:How do you pass a string literal in from a settings file in C#如何从 C# 的设置文件中传递字符串文字
【发布时间】:2012-10-26 02:46:57
【问题描述】:

我想创建一个配置设置以将字符串传递给我的应用程序。该字符串基于网页中的一些文本,这就是我需要允许从配置文件中更改它的原因。

我要传入的字符串是

一)

Forecast Summary:</b> 
    <span class="phrase">

当我使用它来搜索页面时,字符串文字的格式是

b)

string myString = "Forecast Summary:</b> \n        <span class=\"phrase\">";

问题在于传入的字符串(通过将上面(a)中的文本粘贴到应用程序设置屏幕中)以格式传递

c)

"Forecast Summary:</b> \r\n        <span class=\"phrase\">"

(插入回车)

有没有办法在 App.Config 中输入字符串作为“精确”字符串文字

【问题讨论】:

  • 你怎么知道它通过了?快速监视窗口显示转义字符。
  • 我正在尝试使用 string.IndexOf(myString) 来定位页面上的字符串。查看 myString 的值,它包含额外的回车符

标签: c# string settings app-config literals


【解决方案1】:

您需要使用CDATA 或XML 转义码。

<myxml>
    <record>
        <![CDATA[
        Line 1 <br />
        Line 2 <br />
        Line 3 <br />
        ]]>
    </record>
</myxml>

有关XML Escaping的更多信息,请参见此处

更多信息请见:here & here

【讨论】:

    【解决方案2】:

    我首先通过在 App.Config 中直接输入 XML 编码字符来解决它。

    <setting name="DataExtractFrom" serializeAs="String">
         <value>Forecast Summary:&lt;/b&gt; &#10;        &lt;span class="phrase"&gt;</value>
    </setting>
    

    (之前我已经将它粘贴到项目的设置屏幕中,必须添加额外的回车)

    然后

    正如 pylover 上面建议的那样,如果我使用 CDATA 格式编辑 App.Config 文件,它就可以工作..

    <setting name="DataExtractFrom" serializeAs="String">
       <value><![CDATA[Forecast Summary:</b> \n        <span class=\"phrase\">]]></value>
    </setting>
    

    这在配置文件中看起来更干净,所以我最终使用了这种格式。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-16
      • 2019-12-02
      • 1970-01-01
      相关资源
      最近更新 更多