2012-06-27 18 views
7

Autofac permite resolver con facilidad múltiples interfaces a la misma instancia con .AsImplementedInterfaces() o encadenado. Como <>() llama junto con .SingleInstance(). ¿Esto también se puede hacer con TinyIoC? Solo he encontrado cómo registrar múltiples implementaciones de la misma interfaz, pero no hay forma de encadenar registros o similares.TinyIoC: Registrar múltiples interfaces en una sola instancia

Según tengo entendido, esta es una característica bastante importante para un contenedor IoC, ¿no?

Respuesta

9

Si estoy entendiendo correctamente usted tiene algo así como

public class MyThing : IFoo, IBar 
{ 
} 

y desea que el siguiente para devolver la misma instancia que entre sí:

Resolve<IFoo>(); 
Resolve<IBar>(); 

Si es así, es posible, pero es un poco feo:

container.Register<IFoo, MyThing>(); 
container.Register<IBar>((c,p) => c.Resolve<IFoo>() as IBar); 

Probablemente puedas envolver eso en una sintaxis más agradable si quisieras, pero eso fa delegado del comité es efectivamente lo que sucederá bajo el capó.

+0

Gracias! Estaba tratando de encontrar algo como esto, pero no pude decidirme anoche. – TeaDrivenDev

Cuestiones relacionadas