Pregunta

Quiero generar código para crear un objeto de tabla hash y asignarlo con una clave y un valor programático. que debe ser similar a

Hashtable ht = new Hashtable();

ht.Add( "key1", "value1" );
ht.Add( "key2", "value2" );
ht.Add( "key3", "value3" );

para, por ejemplo

CodeMemberMethod testMethod = new CodeMemberMethod();

        testMethod.Name = "Test" + mi.Name + "_" + intTestCaseCnt;
        testMethod.Attributes = MemberAttributes.Public;.....

A continuación se crea un método programacticaly ahora yo quiero crear una tabla hash por lo que estoy pidiendo, ¿cómo?

¿Fue útil?

Solución 3

CodeParameterDeclarationExpression hashTableParam =new CodeParameterDeclarationExpression();
hashTableParam.Name = "hastable";

hashTableParam.Type = new CodeTypeReference(typeof(System.Collections.Hashtable));
  

Esto es lo que estaba buscando gracias por los esfuerzos ur

Otros consejos

Para la generación de código consideran el Toolkit Transformación plantilla (T4)

Esta plantilla ...

Hashtable ht = new Hashtable();
<#
    foreach (var obj in DataSource)
    {
#>
ht.Add( "<#= obj.Key #>", "<#= obj.Value #>" );
<#
    }
#>

... generaría esta salida ...

Hashtable ht = new Hashtable();
ht.Add( "key1", "value1" );
ht.Add( "key2", "value2" );
ht.Add( "key3", "value3" );
...
ht.Add( "keyN", "valueN" );

Donde N es el número de registros en su fuente de datos.

Lo mejor es que esto está integrada en Visual Studio 2008

he tenido buenas experiencias con ella

Cuando estás atascado? Usted sabe cómo crear un CodeMemberMethod, por lo que debe ser capaz de añadir objetos a la colección de los estados CodeMemberMethod.Statements. Usted necesitará una declaración para la declaración de variables, uno para la asignación / inicialización y uno para cada "Añadir" -Llame.

Por cierto: He usado Código DOM en el pasado, pero se encontró que la generación de código directamente con un motor de plantillas es menos funciona y hace que el código más legible. Yo uso normalmente StringTemplate , y estoy muy contento con él.

Los dos generadores de código yo sepa son ...

principal sitio de , con un versión libre

T4 que es en Scott Hanselman tiene un blog sobre ello aquí

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top