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

Когда я отформатировать его как обычная строку с string.Format, естественно, я получаю исключение, что входная строка не была в правильном формате. Я попытался избежать аргументов, как это рекомендуется в документации msdn, например «{{0}}» и даже «{{{0}}}», но я все равно получаю то же исключение. Любые идеи о том, как форматировать такую ​​строку?Экранирования аргументов для string.Format в 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

Проблема заключается в открытии и закрытии брекетов. Вам нужно процитировать их, или Format подумает, что вы начинаете спецификатор параметра.

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

спасибо, но я попробовал это тоже, все равно получил то же исключение – kateroh

+0

ах ... получил его! Мне пришлось избегать ВСЕ брекетов. @"благодаря!" – kateroh