2010-10-08 120 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