2010-10-04 21 views
7

Parece que no puedo encontrar Microsoft.Practices.Unity.StaticFactory.dll en ninguna parte.Unity Static Factory Extension

¿Hay alguna otra manera de registrar una fábrica estática?

Buscando algo como esto

container.RegisterFactory (() => FooFactory.CreateFoo());

Respuesta

14

StaticFactory.dll se enrollan en el conjunto principal como parte de la Unidad 2.0. Por lo general, fue lo suficientemente útil como para no obligar a las personas a llevar una DLL por separado solo para obtenerla.

Como tal, puede seguir utilizando la API existente, simplemente no necesita agregar la referencia de ensamblado. Sin embargo, hemos desaprobado la API anterior. La extensión se puede agregar, pero no hace nada, ya está incluida en el contenedor. Y ahora se puede registrar fábricas en el contenedor diciendo:

container.RegisterType<IFoo, Foo>(new InjectionFactory(c => new Foo()); 

donde c es el contenedor que se está resolviendo la instancia. También hay una opción para pasar el tipo y el nombre que se resuelven también.

Desaprobamos la API anterior porque era muy incómoda de usar y ya no es una extensión.

0

El método RegisterFactory es parte de la clase StaticFactoryExtension, que está en desuso ya que puede ver here.

Si está buscando extensiones de fábrica, this thread debería ser útil.

Espero que esto ayude.

Gracias, Damian

+0

¿Por qué está obsoleto? –

+0

Como dice en el enlace que proporcioné: [ObsoleteAttribute ("Usar RegisterType (nueva InjectionFactory (...)) en lugar de los métodos de la extensión.")] –