Tema: CodeDOM
Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/03/2007, 16:41
lang.net
 
Fecha de Ingreso: diciembre-2004
Mensajes: 130
Antigüedad: 19 años, 5 meses
Puntos: 0
Exclamación CodeDOM

Hola a todos, estoy trabajando con el namespace "System.CodeDom" y deseo crear una clase con las siguientes caracteristica en base a los miembros de CodeDOM.

Código:
[System.Serializable()]
[System.Obsolete("This class is obsolete.")]
public class Class1
{
}
Para generar ese codigo, estoy utilizando el siguiente codigo

Código:
CodeTypeDeclaration class1 = new CodeTypeDeclaration("Class1");
CodeAttributeDeclaration codeAttrDecl = new CodeAttributeDeclaration("System.Serializable");
class1.CustomAttributes.Add(codeAttrDecl);
CodeAttributeArgument codeAttr = new CodeAttributeArgument(new CodePrimitiveExpression("This class is obsolete."));
codeAttrDecl = new CodeAttributeDeclaration("System.Obsolete", codeAttr);
class1.CustomAttributes.Add(codeAttrDecl);
Hasta ahi todo es perfecto, pero ahora quiero agregar algo mas a mi clase generada con CodeDOM, algo así:

Código:
[System.Serializable()]
[System.Obsolete("This class is obsolete.")]
[Transaction(TransactionOption.Required)]
public class Class1
{
}
Y notese que [Transaction(TransactionOption.Required)] es diferente a [System.Obsolete("This class is obsolete.")] ya que el parametro no es un string si no una clase.

He intentado usando CodePrimitiveExpression con algunas variantes pero al parecer no es la clase que necesito... cual es la clase que debo usar?

Como podria lograr eso utilizando CodeDOM?

Muchas gracias a todos ;)

Saludos.
__________________
langdotnet