none
Instanciar un formulario que pertenece a una dll RRS feed

  • Pregunta

  • Pido mil disculpas. Puse una respuesta y me equivoqué. Pulsé en EDITAR para modificarla, y cometí el error de editar el mensaje original en lugar de editar mi respuesta. Por favor, vuélve a poner la pregunta. Pido de nuevo mil disculpas, ha sido un error mío.


    Type formType = Type.GetType(sObject);
    if (formType != null)
    {
        var f = (Form)Activator.CreateInstance(formType);
        f.MdiParent = this;
        f.Show();
    }


    viernes, 25 de mayo de 2018 22:50

Respuestas

Todas las respuestas

  • Asegúrate de que en el sObject tienes el nombre completo de la clase incluyendo el Assembly, de lo contrario el Activator.CreateInstance intenta buscarlo en el assembly actual en lugar de la DLL.

    sábado, 26 de mayo de 2018 6:54
    Moderador
  • Hola buenos dias y gracias por tu respuesta.

    la variable sObject tiene el nombre completo de la dll, tambien probe cambiandoselo y cortandolo, pero daba resultado, para mi no lo devuelve ya que es una dll, y el exe es "nativo" para winforms. esta linea de codigo devuelve el Assembly que me decis 
    Type formType = Type.GetType(sObject);
    Pero la verdad no se como recuperar ese assembly de la dll. 

    Saludos


    Saludos, Gastón Marengo

    sábado, 26 de mayo de 2018 11:37
  • ¿Dónde te devuelve null, en el GetType o en el CreateInstance?

    Si es en el GetType, prueba a pasarle el string en el formato "EspacioDeNombres.ClaseDelForm,NobreDeLaDLL". Fíjate en que el nombre de la DLL (sin la extensión .dll) va detrás del nombre de la clase separado por una coma.

    La DLL es el assembly, no es que haya que "recuperar el assembly de la DLL".

    https://msdn.microsoft.com/en-us/library/w3f99sx1(v=vs.110).aspx

    • Marcado como respuesta Gaston Marengo sábado, 26 de mayo de 2018 17:43
    sábado, 26 de mayo de 2018 13:59
    Moderador
  • Muchas gracias, funciono tal como decias.

    Saludos


    Saludos, Gastón Marengo

    sábado, 26 de mayo de 2018 17:43