c# - que - Inyección de de Dependencia/IoC en Workflow Foundation 4
windows communication foundation descargar (1)
¿Es posible usar DI en sus actividades de flujo de trabajo? y si es así, ¿cómo?
Por ejemplo, si tienes una actividad como
public sealed class MyActivity : CodeActivity
{
public MyClass Dependency { get; set; }
protected override void Execute(CodeActivityContext context)
{
Dependency.DoSomething();
}
}
¿Cómo puedo establecer Dependency
?
(Estoy usando Spring.Net)
Workflow no usa un contenedor IOC. Utiliza el patrón ServiceLocator donde agrega dependencias al tiempo de ejecución del flujo de trabajo como extensiones y actividades de flujo de trabajo y recupera estos servicios de las extensiones de flujo de trabajo a través del contexto.
Un patrón ServiceLocator y IOC son similares y tienen el mismo propósito al desacoplar dependencias. El apporach es diferente, aunque en un contenedor IOC empujando las dependencias mientras que un ServiceLocator se usa para extraer las dependencias.
Actividad de ejemplo:
public class MyBookmarkedActivity : NativeActivity
{
protected override void CacheMetadata(NativeActivityMetadata metadata)
{
base.CacheMetadata(metadata);
metadata.AddDefaultExtensionProvider<MyExtension>(() => new MyExtension());
}
protected override void Execute(NativeActivityContext context)
{
var extension = context.GetExtension<MyExtension>();
extension.DoSomething();
}
}
La clase MyExtension es la extensión aquí y no tiene una clase base o requisitos de interfaz.