在C#多行逐字字符串中转义string.Format的参数

时间:2010-10-08 19:15:11

标签: c# string string.format

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

当我将它格式化为string.Format的常用字符串时,我自然会得到输入字符串格式不正确的异常。我尝试转义msdn文档中推荐的参数,比如“{{0}}”甚至“{{{0}}}”,但我仍然得到相同的异常。关于如何格式化这样一个字符串的任何想法?

谢谢!

P.S. [edit]我的原始字符串用于生成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),它会抛出;

1 个答案:

答案 0 :(得分:31)

问题在于开放和紧密的支撑。你需要引用它们,否则Format会认为你是一个参数说明符。

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