¿Puede alguien dirigirme a un buen ejemplo de Unity Dependency Injection para servicios de WCF? Cualquier artículo de blog o msdn también ayudará.Unity Dependency Injection para servicios de WCF
Respuesta
Para inyectar dependencias en los servicios de WCF tuve que implementar una fábrica de host de servicio.
He encontrado un tutorial paso a paso here.
Básicamente, usted tiene que:
- implementar un IInstanceProvider para crear servicios utilizando el contenedor
- Implementar un IServiceBehavior para establecer el proveedor de ejemplo en el despachador de punto final
- Extender ServiceHost para añadir el nuevo comportamiento en servicio
- Extender ServiceHostFactory para crear el nuevo host de servicio
This answer da un ejemplo de cómo habilitar DI en WCF con Castle Windsor.
basta con sustituir el IWindsorContainer con un IUnityContainer en el ejemplo y que debería estar todo listo, aunque también se puede querer cambiar los nombres de las clases de WindsorXyz a UnityXyz :)
Estoy a punto de darle una oportunidad a La biblioteca Unity.Wcf (https://github.com/ViceIce/unity.wcf), a primera vista se ve bastante bien. He leído en este this article:
Si usted es anfitrión de su servicio WCF dentro de un servicio de Windows utilizando un ServiceHost, reemplazar la instancia ServiceHost con la costumbre Unity.Wcf.UnityServiceHost. Encontrará que UnityServiceHost toma un contenedor de Unity como su primer parámetro, pero por lo demás es idéntico al ServiceHost predeterminado.
Como es mi caso voy a hacer esto ...
class Program
{
static void Main(string[] args)
{
// 1st Initialize the Host (Configures Container and Factories)
ServiceHostController.Initialize();
// 2nd Create a URI to serve as the base address.
var baseAddress = new Uri("http://localhost:54321/BlaBlaBla/");
// 3rd Create a UnityServiceHost instance
var myService = new UnityServiceHost(ServiceHostController.UnityContainer, typeof(MyService), baseAddress);
try
{ //etcetera...
Y funcionó para mí, todavía tengo algunas cosas que refactorizar y añadir características y métodos, pero el punto de partida Funciona de maravilla.
Espero que ayude.
- 1. Grails Dependency Injection fuera de los servicios?
- 2. Dependency Injection
- 3. Symfony 2 Dependency Injection & autowiring
- 4. Custom ResourceProviderFactory Dependency Injection
- 5. Dependency Injection & using interfaces?
- 6. MVP dependency injection
- 7. Dependency Injection and Factories
- 8. Lazy Dependency Injection
- 9. MSTest TestMethod Dependency Injection
- 10. Cuándo utilizar Dependency Injection
- 11. Webforms and Dependency Injection
- 12. Android and Dependency Injection
- 13. Uso de Reader Monad para Dependency Injection
- 14. Dependency Injection para objetos que requieren parámetros
- 15. Dependency injection container? ¿Qué hace?
- 16. Dependency Injection en Sharepoint 2010
- 17. Dependency Injection como característica de idioma?
- 18. Guice dependency injection for entity beans?
- 19. Dependency Injection - ¿A quién pertenece la interfaz?
- 20. Dependency Injection en una aplicación n-tier?
- 21. ¿Qué tan lejos llega Dependency Injection?
- 22. Delphi Dependency Injection: Framework vs Delegating Constructor
- 23. Dependency Injection en .NET con ejemplos?
- 24. Spring Dependency Injection and Plugin Jar
- 25. IoC Dependency Injection para objetos con estado (no global)
- 26. Configure Unity Injection para todos los descendientes de alguna clase base
- 27. Uso de Dependency Injection como alternativa a Singletons
- 28. Cómo evitar la locura del constructor de Dependency Injection?
- 29. Dependency injection: ¿Cómo pasar el contenedor de inyección?
- 30. Uso de Dependency Injection en ASP.NET MVC3 Model Binder
¿Es ese el mejor? Ya lo he visto y parece complicado. ¿Algo más simple que eso? – SVI
Esto es ahora un enlace muerto. –
@BrianGideon He reparado el enlace, gracias – onof