none
¿Crear un objeto en una clase llamada desde otra clase en distinto directorio?

    Question

  • Saludos expertos en programacion, estoy desarrollando una aplicacion web con VS2008 y C#, dentro de esta cree varios directorios y dentro de estos clases y sus metodos...el problema es que en una clase de un determinado directorio no puedo crear un objeto que se instancia de una clase en otro directorio, en primera no me lo reconoce, por otra parte dentro del mismo directorio si soy capaz de crear objetos instanciados de otra clase pero del mismo directorio, pero el problema es que no puedo acceder a sus metodos. ejemplo:

    en el mismo directorio tengo la "clase1" con un metodo

    public string Saludo()

    {
    return string saludo = "Hola"
    }

    ahora en la "clase2" puedo crear un objeto instancia de la "clase1" pero no puedo hacer el llamado a su metodo Saludo()

    si alguien pudiera decirme que estoy haciendo mal o que debo hacer. Muchas gracias de antemano.

     

     

    Friday, January 06, 2012 8:41 PM

Answers

  • hola

    podrias poner ambas clases bajo el mismo namespace

    namespace Proyecto
    {
        public class clase1
        {
          
        }
    }

    y en el directorio Empresa

    namespace Proyecto
    {
        public class clase2
        {
          
        }
    }

     

     

    o podrias definir un using

     

    namespace Proyecto.Clientes
    {
        public class clase1
        {
          
        }
    }

    y en el directorio Empresa

    using Proyecto.Clientes

    namespace Proyecto.Empresa
    {
        public class clase2
        {
          
        }
    }

     

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    • Marked as answer by ivankikes Saturday, January 07, 2012 3:39 PM
    Friday, January 06, 2012 9:51 PM

All replies

  • dentro de esta cree varios directorios y dentro de estos clases

    has validado que estos directorios no generaron namespaces para definir las clases ? digo para validar que estas invocando a la clase que esperas invocar

    ademas este problema de invocacion es en el diseñador, o sea cuando defines

    clase1 inst1 = new clase1();

    string resultado = inst1.Saludo();

    es alli donde el metodo no aparece en el intelisense ?

     

    prueba hacer un Clear y Rebuild de la solucion

     

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    Friday, January 06, 2012 9:12 PM
  • Primeramente Gracias....

    Exactamente!!

    hice el Clear y Rebuild y ya me reconoce el intelisense, muchas gracias, pero esto es en clases que estan en el mismo directorio...ahora bien como hago para hacer lo mismo en distintos directorios: 

    clase1 inst1 = new clase1();

    string resultado = inst1.Saludo();

    pero que la clase clase1 pueda estar en otro directorio? como valido que los directorios no generen namespaces? bueno esa parte no la entendi del todo bien...veo que en el directorio Clientes me genera la clase de la siguiente forma:

     

    namespace Proyecto.Clientes
    {
        public class clase1
        {
          
        }
    }

    y en el directorio Empresa

    namespace Proyecto.Empresa
    {
        public class clase2
        {
          
        }
    }

    como lo arreglo? Bueno como creo un objeto de la "clase1" en la "clase2" y tambien me gustaria invocar un metodo que este dentro de una "clase1" en otra clase de distinto directorio pero de tipo webservice. es posible?

    Nuevamente muchas gracias.

     



    • Edited by ivankikes Friday, January 06, 2012 9:46 PM
    Friday, January 06, 2012 9:42 PM
  • hola

    podrias poner ambas clases bajo el mismo namespace

    namespace Proyecto
    {
        public class clase1
        {
          
        }
    }

    y en el directorio Empresa

    namespace Proyecto
    {
        public class clase2
        {
          
        }
    }

     

     

    o podrias definir un using

     

    namespace Proyecto.Clientes
    {
        public class clase1
        {
          
        }
    }

    y en el directorio Empresa

    using Proyecto.Clientes

    namespace Proyecto.Empresa
    {
        public class clase2
        {
          
        }
    }

     

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    • Marked as answer by ivankikes Saturday, January 07, 2012 3:39 PM
    Friday, January 06, 2012 9:51 PM
  • Realmente, no hubiese podido avanzar sin tu ayuda...Mil gracias.

    lo resolvi con el namespace.

    y en la clase de tipo webservice define la clase de la siguiente forma.

    [WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [System.Web.Script.Services.ScriptService]


    public class ClaseServicio: System.Web.Services.WebService
    {

    ......

    }

    en este caso me reconoce con using...pero no con los mismos namespace. pues como veras el namespace lo tiene como = "http://tempuri.org/"  que honestamente no se a que se debe. Bueno supongo que eso es todo.

    Gracias Leandro

    Friday, January 06, 2012 10:02 PM