2010-10-08 108 views
11
string template = @" 
      { 
      argument1 = ""{0}""; 
      argument2 = {1}; 
      }"; 

当我将其格式化为带有string.Format的常用字符串时,我自然会得到输入字符串格式不正确的异常。我尝试在MSDN文档中建议转义参数,如“{{0}}”,甚至“{{{0}}}”,但我仍然得到相同的异常。任何想法如何格式化这样的字符串?在C#多行逐字字符串中转义字符串格式的参数

谢谢!

附注:[编辑]我原来的字符串是用于生成WCAT场景文件:

string scenarioHeaderTemplate = @" 
    scenario 
    {{ 
     name = ""WCAT Scenario""; 
     warmup  = {0}; 
     duration = {1}; 
     cooldown = {2}; 

     default 
     { 
      version  = HTTP11; 
      setheader 
      { 
       name = ""Connection""; 
       value = ""keep-alive""; 
      } 
      statuscode = 200; 
      close  = ka; 
     } 
    }}"; 

,它抛出,如果我尝试的String.format(scenarioHeaderTemplate,10,10,10);

回答

29

问题是打开和关闭大括号。你需要引用那些,或格式会认为你正在开始一个参数说明符。

string template = @" 
      {{ 
      argument1 = ""{0}""; 
      argument2 = {1}; 
      }}"; 
+0

谢谢,但我也试过,还是有同样的例外 – kateroh 2010-10-08 19:27:37

+0

啊...明白了!我不得不逃脱所有大括号。 @“谢谢!” – kateroh 2010-10-08 19:35:38