String.format无效

时间:2012-11-28 00:55:37

标签: c# .net xml filestream

代码执行时没有任何错误,但{0}和{1}不会被String.Format中声明的值替换

FileStream fs = new FileStream(xmlFile.FullName, FileMode.Open, FileAccess.Read);
XmlDocument doc = new XmlDocument();
doc.Load(fs);

 string docStrXml = doc.InnerXml.ToString();
 String.Format(docStrXml, newVersion.ToString(), oldVersion.ToString());

 triggerDocument.LoadXml(docStrXml);
 triggerDocument.Save(directoryPathOfNewXml + "\\" + xmlFile.Name);

保存新文件没有问题。基本上,我打开一个xml文件,我想在文档中插入字符串。这是初始文档(也是最后一个文档,因为它没有改变):

<?xml version="1.0" encoding="utf-8" ?>
<Package
    source="http://localhost/Service/Master/{0}/{1}/"
    triggerseturl="http://localhost/Service/Master/{0}/{1}/client.xml">
  <File name="client_full.xml"/>
  <File name="client_half.xml"/>
</Package>

3 个答案:

答案 0 :(得分:3)

您忘记将docStrXml中的值替换为新值:

docStrXml = String.Format(docStrXml, newVersion.ToString(), oldVersion.ToString());

答案 1 :(得分:3)

字符串是不可变的,您必须将string.Format的返回值赋给另一个变量。

它将包含带有插入值的新字符串。

docStrXml = String.Format(docStrXml, newVersion.ToString(), oldVersion.ToString());

答案 2 :(得分:1)

String.Format方法根据传递给[docStrXml]的字符串参数返回一个字符串,但不直接对其进行操作。您需要将返回值分配给变量,在这种情况下,您将传递给该方法。将您的代码修改为:

docStrXml = String.Format(docStrXml, newVersion.ToString(), oldVersion.ToString());

你应该好好去。