2011-11-18 11 views
5

Czy ktoś mógłby wyjaśnić różnicę międzyIoC (Windsor) - Co to jest "domyślny interfejs"?

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

i

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

, co należy rozumieć przez "domyślnym interfejsem"?

Odpowiedz

6

Jest to heurystyka że looks for an implementation of an interface by removing the leading I:

  • IFoo -> Foo
  • IBAR -> Bar
  • IKitchenSink -> kitchensink

Jednak, moim zdaniem, za pomocą tej funkcji pachnie z over-abundance of 1:1 interfaces.

+1

ok, ale nie jest to cały punkt 1: 1 DI komponentów/usług, które mają tylko jedną (podłączaną) implementację dla tej instancji aplikacji (niezależnie od tego, czy jest to urządzenie testowe, czy aplikacja internetowa) - punkt bycie: podłączalność? –

+9

Właściwie może również dopasować rzeczy takie jak: 'IFoo' ->' MarksSuperFoo' Zasadniczo wygląda, jeśli po usunięciu wiodącego 'I' nazwa klasy __contains__ nazwa interfejsu –