2010-05-05 13 views
6

Cómo uso el atributo Conditional ("Condition1") donde "Condition1" es una variable de entorno. La ayuda dice que se puede hacer, pero no dice cómo.C# usando Conditional() con una variable de entorno

+0

Tenía la intención de usar una variable de entorno como un interruptor de tiempo de compilación. #if (existe variable de entorno) {// cosas } – Kaya

Respuesta

0

No necesita hacer nada más que crear la variable de entorno (por ejemplo, con un valor de 1) y luego hacer referencia a ella por su nombre en la AtribuciónCondicional. Es necesario crear el vaiable en el cuadro de diálogo "Variables de entorno" al que se accede a través de la pestaña avanzada del cuadro de diálogo Propiedades del sistema; es decir, no puede simplemente abrir un símbolo del sistema y establecer la variable allí ya que ese valor solo existirá dentro de ese aviso y se perderá cuando se cierre el aviso.

5

creo que esto es lo que busca http://yogesh.jagotagroup.com/blog/post/2008/03/01/CSharp-Conditional-attribute.aspx

La palabra 'variable de entorno' se refiere al entorno de VS, no el sistema operativo o cualquier otro. Simplemente puede etiquetar sus clases o métodos con DEBUG o cualquier variable personalizada; entonces, estas clases y métodos todavía existen cuando se compilan, pero cuando se genera el código IL, simplemente se omiten, en caso de que esa variable no esté definida (como dice el ejemplo).

Espero que esto ayude.

Pz, el desarrollador TaskConnect

+0

Puede añadir símbolos de compilación adicionales en el editor de propiedades para su proyecto (haga doble clic en el nodo Propiedades en el proyecto) y después hacer referencia a aquellos dentro de la ConditionalAttribute – Will

3

No está seguro de lo que hace Conditional(string condition), pero usted puede conseguir sus variables de entorno usando Environment.ExpandEnvironmentVariables.


Si estamos hablando acerca de la ConditionalAttribute, estás de suerte. Este atributo se evalúa en COMPILAR TIEMPO, en su máquina de desarrollo (o en el servidor de compilación). No tiene ningún efecto en RUNTIME, donde le gustaría hacer algo diferente dependiendo del estado de la máquina del usuario (como lo indica una variable de entorno).

Puede utilizar el método mencionado anteriormente de la clase Environment para determinar, dentro del cuerpo de un método, si debe continuar o no la ejecución. Esa es probablemente tu mejor apuesta.

+0

Sí COMPILE TIME era lo que buscaba. – Kaya

+0

Impresionante @kaya. Me encanta COMPILE TIME. Puede configurar variables de entorno dentro de las propiedades del proyecto, que deberían hacer lo que necesita (a menos que intente hacer las cosas de manera diferente en diferentes máquinas). – Will

Cuestiones relacionadas