En tiempo de diseño o en tiempo de ejecución

En algún que otro desarrollo sobre Compact Framework, y también sobre otras plataformas, necesitamos ejecutar código en función de si estamos en tiempo de diseño o en tiempo de ejecución. En el siguiente ejemplo se muestra como podía realizar esta tarea.

    public class Helper

    {

        /// <summary>

        /// La aplicacion esta en tiempo de diseño

        /// </summary>

        public static bool IsDesignTime

        {

            get

            {

                //Comprobamos el Key Token del assembly en el que esta

                //contenido el Tipo Int32 y verificamos que es el correspondiente

                // a mscorlib para .NET Framework

                Assembly msCorLib = typeof(Int32).Assembly;

                if (msCorLib != null)

                    //Comprobamos el Key Token

                    return (msCorLib.FullName.IndexOf("B77A5C561934E089") != -1) ? true : false;

                return false;

            }

        }

        /// <summary>

        /// La aplicacion esta en tiempo de ejecucion

        /// </summary>

        public static bool IsRuntime

        {

            get

            {

                //Comprobamos el Key Token del assembly en el que esta

                //contenido el Tipo Int32 y verificamos que es el correspondiente

                // a mscorlib para .NET Compact Framework

                Assembly msCorLib = typeof(Int32).Assembly;

                if (msCorLib != null)

                    return (msCorLib.FullName.IndexOf("969DB8053D3322AC") != -1) ? true : false;

 

                return false;

 

            }

        }

    }

La idea consiste en verificar el PublicKeyToken del ensamblado que contiene al tipo Int32, dependiendo de este PublicKeyToken podremos verificar si estamos trabajando con mscorlib de .NET Framework o mscorlib de .NET Compact Framework.

Espero que le saqueis provecho...

Saludos

Unai Zorrilla Castro

Published 23/9/2006 17:35 por Unai
Archivado en:
Comparte este post:
http://geeks.ms/blogs/unai/archive/2006/09/23/En-tiempo-de-dise_F100_o-o-en-tiempo-de-ejecuci_F300_n.aspx

Comentarios

# re: En tiempo de diseño o en tiempo de ejecución

Unai, que buen tip gracias !!!

aunque q mala noticia que la propiedad "DesignMode" no esté por defecto como ya la tenemos en los proyectos para aplicaciones Win :(

Saludos

Monday, September 25, 2006 11:35 AM por El Bruno

# En tiempo de diseño o en tiempo de ejecución

kisiera saber cual es el tiempo de ejecucion y cual es el tiempo de diseño en visual basic, asi el concepto xfa ayuda!!!!!!!!!!!!!!

urge

Friday, April 24, 2009 2:17 AM por alma