Escapar argumentos para string.Format en cadena de un pie de la letra C # multilínea

StackOverflow https://stackoverflow.com/questions/3893604

  •  28-09-2019
  •  | 
  •  

Pregunta

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. He intentado escapar de los argumentos como se recomienda en la documentación de MSDN, como "{0} {}" e incluso "{{{0}}}", pero sigo teniendo la misma excepción. Cualquier ideas sobre cómo dar formato a una cadena tal?

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);

¿Fue útil?

Solución

El problema es que las llaves de apertura y cierre. Es necesario citar aquellos, o Formato pensará que estás begining un especificador de parámetro.

string template = @"   
          {{   
            argument1   = ""{0}""; 
            argument2   = {1};   
          }}"; 
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top