Actualmente estoy tratando de entender los servicios de WCF para un entorno de desarrollo ASP.NET, y creo que me está yendo bien, salvo por una cosa que me ha dejado perplejo.¿Cómo puedo llamar al constructor de mi servicio WCF?
Básicamente, Tengo un servicio de WCF establecido (Tomemos el defecto, con un constructor añadido):
public class MyService : IMyService
{
public MyService() { /* blah */ }
public DoWork() { /* blah */ }
}
La interfaz IMyService
define el método DoWork()
como [OperationContract]
, como debe ser.
Así que este servicio se hace referencia en otro proyecto (digamos un [Unidad] Proyecto de prueba), a través de Agregue la referencia de servicio en la interfaz de usuario VS2010. Esto crea una referencia a MyServiceClient
que expone mis métodos de servicio WCF, como debería.
Sin embargo, cuando hago esto en mi proyecto de prueba:
ServiceReference.IMyService service;
service = new ServiceReference.MyServiceClient();
... el constructor MyService()
no recibe llamados, básicamente porque estoy instancias de un MyServiceClient
, no un MyService
per se.
¿Cómo hago para llamar al constructor? Estoy planeando usar eso para fines de inicialización (¿tal vez tomar una capa en una implementación por niveles, por ejemplo?).
Básicamente, usted está diciendo que en lugar de _Add Service Reference_, debería simplemente ir con una buena referencia _Add_ al proyecto de servicio, y luego acceder directamente a las clases de servicio. –
No, agregar una referencia de servicio es correcto ... pero el constructor en su clase de servicio no se ejecuta como parte de su código local; se ejecuta en su servidor IIS cuando * llama * al servicio. Se * invocará * antes de ejecutar cualquiera de sus métodos de servicio, solo que no cuando cree su objeto cliente. –
Gotcha. Estaba trabajando con su solución cuando me di cuenta de que aún no había llamado a ningún método de servicio en mi proyecto de prueba. : D Gracias! –