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

2 comentarios sobre “En tiempo de diseño o en tiempo de ejecución”

  1. 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

Responder a elbruno Cancelar respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *