2011-11-18 9 views
5

Por favor alguien puede explicar la diferencia entreIoC (Windsor) - ¿Qué es una "Interfaz predeterminada"?

container.Register(AllTypes.FromAssemblyContaining(typeof(BigCompanyRepository)) 
.WithService.DefaultInterface() 

y

container.Register(AllTypes.FromAssemblyContaining(typeof(BigCompanyRepository)) 
.WithService.AllInterfaces() 

¿Qué se entiende por una "interfaz por defecto"?

Respuesta

6

Es una heurística que looks for an implementation of an interface by removing the leading I:

  • IFoo -> Foo
  • IBar -> Bar
  • IKitchenSink -> KitchenSink

Sin embargo, en mi opinión, el uso de esta característica olores de un over-abundance of 1:1 interfaces.

+1

bien, pero no es el objetivo de 1: 1 la DI de componentes/servicios que solo tienen una implementación (conectable) para esta instancia de aplicación (ya sea un accesorio de prueba o una aplicación web): el punto ser: ¿pluggabilidad? –

+9

En realidad, también puede hacer coincidir cosas como: 'IFoo' ->' MarksSuperFoo' Básicamente se ve si, después de eliminar el 'I' principal, el nombre de clase __contiene__ el nombre de la interfaz –

Cuestiones relacionadas