Autor Tema: Obtener el nombre de Raíz de mi proyecto  (Leído 4589 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Jonhyrey

  • Sv Full Member
  • *
  • Mensajes: 558
Obtener el nombre de Raíz de mi proyecto
« : marzo 11, 2008, 04:12:59 pm »
Hola a todos....

Vengo a molestarlos con una consulta.... estoy creando una clase que me permita utilizar objetos de mi proyecto (específicamente informes) a partir de el nombre de la clase(String) del mismo. Para ello necesito especificar el nombre raíz del proyecto al que el objeto pertenece... un ejemplo:

Mi proyecto se llama "Pruebas"

para crear el objeto debo enviarlo así "Pruebas.rpt_Pruebas"

La pregunta en si es: ¿Como puedo obtener el nombre raíz de mi proyecto?

Les agradezco mucho su ayuda

Saludos



Desconectado rdoggsv

  • Administrator
  • The Communiter-
  • *
  • Mensajes: 6530
  • "Once you go arch , u never go back"
    • SV CommunitY
Re: Obtener el nombre de Raíz de mi proyecto
« Respuesta #1 : marzo 11, 2008, 10:20:03 pm »
Porque no los creas en el mismo namespace los objetos que van acceder a las otras clases para que puedan acceder por defecto ?

Desconectado Jonhyrey

  • Sv Full Member
  • *
  • Mensajes: 558
Re: Obtener el nombre de Raíz de mi proyecto
« Respuesta #2 : marzo 12, 2008, 12:00:22 pm »
Explicame un poquito más el asunto por favor....



Desconectado rdoggsv

  • Administrator
  • The Communiter-
  • *
  • Mensajes: 6530
  • "Once you go arch , u never go back"
    • SV CommunitY
Re: Obtener el nombre de Raíz de mi proyecto
« Respuesta #3 : marzo 12, 2008, 11:18:13 pm »
Mira así dando una explicación al buen salvadoreño, el namespace es como para agrupar las clases, cuando vos creas una clase vas a ver que te le pone arriba un namespace , por defecto es el nombre del proyecto, si vos estas trabajando en ese namespace, o lo pones en tus directivas de using otro namespace, vas a poder acceder a las clases para instanciar objetos con solo el nombre.

Desconectado Jonhyrey

  • Sv Full Member
  • *
  • Mensajes: 558
Re: Obtener el nombre de Raíz de mi proyecto
« Respuesta #4 : marzo 13, 2008, 09:08:46 am »
Correcto.

Mi objetivo es obtener en un String el nombre del Namespace de mi proyecto con el objetivo de crear un objeto a partir de un string con el nombre de un elemento de mi proyecto.

Ejemplo: "Pruebas.rpt_InformePruebas"

Donde: "Pruebas" es el nombre del Namespace. Y "rpt_informePruebas" es el nombre del informe que crearé en una variable de tipo objeto.

¿Existe alguna función que me devuelva por Defecto el nombre de mi namespace, para que pueda crear el String que deseo Correctamente?

Saludos



Desconectado rdoggsv

  • Administrator
  • The Communiter-
  • *
  • Mensajes: 6530
  • "Once you go arch , u never go back"
    • SV CommunitY
Re: Obtener el nombre de Raíz de mi proyecto
« Respuesta #5 : marzo 13, 2008, 10:11:10 am »
Mira este ejemplo tal vez te ayuda

Código: [Seleccionar]
namespace Garden.Flowers
{
public class Rose()
{
//will output Garden.Flower.Rose
Console.WriteLine(GetType().ToString());
}
}

Mira con ese ejemplo podes conseguir el nombre completo de namespace.clase , tal vez si le quitas lo que quede desde el ultimo punto al final te queda el nombre del proyecto.

Pero la verdad que no logro captar el uso que le podes dar a encontrar el nombre del proyecto si los nombres no van a ser algo que va a estar cambiando, porque no definis que la clase que queres instanciar y el codigo que quiere crear el objeto esten en el mismo namespace y no vas a tener que preocuparte por su nombre.

P.D. este es para namespace.
Código: [Seleccionar]
Type type = this.GetType();
string nameSpace = type.Namespace;
« Última Modificación: marzo 13, 2008, 10:13:04 am por rdoggsv »

Desconectado Jonhyrey

  • Sv Full Member
  • *
  • Mensajes: 558
Re: Obtener el nombre de Raíz de mi proyecto
« Respuesta #6 : marzo 14, 2008, 01:51:31 pm »
Lo utilizo para la siguiente Funcion:

 ''' <summary>
    ''' Función privada que crea un objeto a partir de el nombre del informe que existe en el proyecto
    ''' </summary>
    ''' <param name="nombreInforme"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Private Function CrearObjeto(ByVal nombreInforme As String) As Object
        Dim Frm As New Object
        Dim toop As New Object
        nombreInforme = System.Reflection.Assembly.GetExecutingAssembly.GetName.Name & "." & nombreInforme
        Dim valor As New System.Runtime.Remoting.ObjectHandle(Frm)
        valor = AppDomain.CurrentDomain.CreateInstance(Assembly.GetExecutingAssembly().FullName, nombreInforme)
        toop = valor.Unwrap
        Return toop
    End Function

Con el objetivo de instanciar un objeto a partir de su nombre y para ello debe tener el nombre del NamesPace.

Muchas gracias por tu ayuda!! voy a implementarlo ahora mismo



Desconectado Juancho

  • The Communiter-
  • *
  • Mensajes: 1311
Re: Obtener el nombre de Raíz de mi proyecto
« Respuesta #7 : marzo 15, 2008, 03:15:19 pm »
Y x mejor unicamente no instancias la clase del reporte? Si tu reporte se llama "prueba.rpt" porque no unicamente la instancias y lo utilizas? Sigo yo tambn sin entender que utilidad le podes dar!

O si no queres ocupar la clase que te crea automaticamente te crea el diseñador todavia podias instanciar un ReportDocument que esto mas que todo se ocupa para aplicaciones de internet entonces te quedaria

Dim rpt as new reportdocument
rpt.load("prueba.rpt")

y ya instancias tu reporte sin tanta complicacion!
<a href="http://www.gametracker.com/player/%7BAiPI%7DJuancho/94.127.17.72:11480/" target="_blank">
<img src="http://cache.www.gametracker.com/player/%7BAiPI%7DJuancho/94.127.17.72:11480/b_560x95.png" border="0" width="560" height="95" alt="" />
</a>

Desconectado Jonhyrey

  • Sv Full Member
  • *
  • Mensajes: 558
Re: Obtener el nombre de Raíz de mi proyecto
« Respuesta #8 : marzo 24, 2008, 02:24:37 pm »
Lo que pasa es q la implementación ya está así. La ventaja que tengo, es que a la clase solo le envío el nombre del informe y la tabla de origen y de una vez me crea un formulario con el visor de Crystal y lo muestra.

Publico también esta duda porque aqui en la empresa manejan el menú en la base de datos... ahi tengo el nombre de una clase de un formulario encriptada y depende del perfil se carga el menú correspondiente.... y ahí también utilizo esta función para crear un formulario a partir del nombre que se encuentra en la base de datos.  Ejemplo: "Pruebas.FrmVentas". Y para esto debo conocer el nombre raíz.

Saludos