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

Cuando formato como una cadena de costumbre con string.Format, naturalmente, me sale una excepción que la cadena de entrada no estaba en el formato correcto. Intenté escapar de los argumentos, como se recomienda en la documentación de msdn, como "{{0}}" e incluso "{{{0}}}", pero sigo recibiendo la misma excepción. ¿Alguna idea sobre cómo formatear una cadena?argumentos de escape por string.Format en una cadena de C# multilínea textualmente

Gracias!

P. S. [editar] mi cadena original es para generar un archivo de escenario 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; 
     } 
    }}"; 

y lanza si intento string.Format (scenarioHeaderTemplate, 10, 10, 10);

Respuesta

29

El problema es abrir y cerrar las llaves. Debe citar esos, o Format pensará que está comenzando un especificador de parámetros.

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

gracias, pero lo intenté también, todavía tengo la misma excepción – kateroh

+0

ah ... lo tengo! Tuve que escapar TODOS los frenos. @"¡Gracias!" – kateroh

Cuestiones relacionadas