none
Como usar clases comunes de 1 aplicacion WCF cuando se usan diferentes servicios RRS feed

  • Pregunta

  • Hola a todos, espero que esten bien!!!

    Tengo la siguiente clase:

    [DataContract]

    public class Comun { }

    Tengo 2 archivos .svc, cada uno con un metodo

    Service1.svc

    [OperationContract]

    Comun DoWork1();

    Service2.svc

    [OperationContract]

    Comun DoWork2();

    Agrego ambas servicios a una aplicacion web usando visual studio... y agrego ambos namespace como referencia

    using Servicio1;

    using Servicio2;

    Si ahora yo hago asi...

    Comun comun = new Comun();

    comun = Service1Client.DoWork1();

    Me da error ya que dice que se encontraron 2 referencias de esta clase, cada servicio agrega una referencia distinta sin importar que en la aplicación WCF sea la misma...

    Por lo que tengo que hacer asi

    Servicio1.Comun comun = new Servicio1.Comun();

    Habra alguna forma de evitar eso?

    De antemano muchas gracias a todos por su ayuda.

    lunes, 9 de abril de 2012 22:39

Respuestas

  • Hola AdyIr

    Yo optaría por poner esas clases en una librería de clases y referenciarlas desde cada uno de los proyectos.


    "En los momentos de crisis, sólo la imaginación es más importante que el conocimiento"

    • Marcado como respuesta AdyIr miércoles, 11 de abril de 2012 5:21
    lunes, 9 de abril de 2012 23:12
  • Efectivamente, a eso mismo me refiero. Así  no tendrías que declarar las clases en cada uno de tus servicios (si son las mismas) sino simplemente referenciar la librería de clases.


    "En los momentos de crisis, sólo la imaginación es más importante que el conocimiento"


    martes, 10 de abril de 2012 8:08

Todas las respuestas

  • Hola AdyIr

    Yo optaría por poner esas clases en una librería de clases y referenciarlas desde cada uno de los proyectos.


    "En los momentos de crisis, sólo la imaginación es más importante que el conocimiento"

    • Marcado como respuesta AdyIr miércoles, 11 de abril de 2012 5:21
    lunes, 9 de abril de 2012 23:12
  • Hola AdyIr

    Yo optaría por poner esas clases en una librería de clases y referenciarlas desde cada uno de los proyectos.


    "En los momentos de crisis, sólo la imaginación es más importante que el conocimiento"

    Hola Santiago

    Te refieres a que me cree un proyecto tipo ClassLibrary donde especifique las clases y consumirla desde la aplicación WCF?

    martes, 10 de abril de 2012 4:33
  • Efectivamente, a eso mismo me refiero. Así  no tendrías que declarar las clases en cada uno de tus servicios (si son las mismas) sino simplemente referenciar la librería de clases.


    "En los momentos de crisis, sólo la imaginación es más importante que el conocimiento"


    martes, 10 de abril de 2012 8:08
  • Efectivamente, a eso mismo me refiero. Así  no tendrías que declarar las clases en cada uno de tus servicios (si son las mismas) sino simplemente referenciar la librería de clases.


    "En los momentos de crisis, sólo la imaginación es más importante que el conocimiento"



    Hola de nuevo y gracias... Ok... Aunque yo no declaro mi clase en cada servicio, yo tengo mi aplicacion WCF y tengo un objeto Class en el donde estan declaradas mis clases... Luego desde cada servicio "archivo .svc" hago referencia a mis clases las cuales cree en el archivo class..
    martes, 10 de abril de 2012 19:55
  • ¿Archivo Class? No entiendo exactamente a qué te refieres cuando dices que tienes un archivo class que referencias desde tus servicios.

    Intenta implementar la solución que te comenté


    "En los momentos de crisis, sólo la imaginación es más importante que el conocimiento"

    martes, 10 de abril de 2012 22:38
  • ¿Archivo Class? No entiendo exactamente a qué te refieres cuando dices que tienes un archivo class que referencias desde tus servicios.

    Intenta implementar la solución que te comenté


    "En los momentos de crisis, sólo la imaginación es más importante que el conocimiento"


    Ok, muchas gracias!!! Osea un archivo .cs
    miércoles, 11 de abril de 2012 5:21