【发布时间】:2013-03-12 11:27:41
【问题描述】:
我正忙于创建一个XDocument 对象。在其中 1 个元素中,我需要添加域名和服务帐户。服务帐号如下:
MyDomainName\\MyServiceAccount
我需要标签看起来像:
<ChangeRunAsName>MyDomainName\MyServiceAccount</ChangeRunAsName>
无论我如何尝试将\\ 替换为\,它仍然显示为\\。
这是我目前拥有的:
XDocument xDocument = new XDocument(
new XDeclaration("1.0", "utf-8", null),
new XElement("MyAppsTable",
myApplications.Select(component => new XElement("MyApps",
new XElement("ChangeResult", string.Empty),
new XElement("ChangeRunAsName", serviceAccount.DomainServiceAccount.Replace("\\\\", "\\")
))
)
);
myApplications 和 serviceAccount 输入参数如下所示:
IEnumerable<MyApplication> myApplications
ServiceAccount serviceAccount
我尝试了以下方法:
serviceAccount.DomainServiceAccount.Replace("\\\\", "\\")
serviceAccount.DomainServiceAccount.Replace(@"\\", @"\")
...它仍然是:
<ChangeRunAsName>MyDomainName\\MyServiceAccount</ChangeRunAsName>
我不知道该怎么办了。
我在上面的代码之后有这个:
string xml = xDocument.ToString();
调试时,我查看 xml 的内容,然后看到 \ 和 \\。这个 xml 字符串我需要传递给另一个方法。
【问题讨论】:
-
您如何查看字符串? VS 调试器将显示转义的反斜杠,这可能会产生误导。
-
我调试。我有这个:
string xml = xDocument.ToString();我复制并粘贴到一个 .xml 文件。我做错了吗? -
调试器添加了额外的反斜杠用于显示目的,所以如果你从调试器中剪切和粘贴,你会遇到这个问题!相反,将其写入文件。或者,您可以右键单击调试器中的变量并选择不转义反斜杠的“文本可视化工具”。
-
我需要将此xml字符串传递给另一个进程。
-
汽车和本地人也会避开反斜杠。仔细观察显示字符串的右侧,您会看到一个小放大镜。选择它旁边的小下拉箭头,然后点击“Text Visualizer”
标签: c# .net xml linq-to-xml