2011-11-18 10 views
5

Ai đó có thể xin giải thích sự khác biệt giữaIoC (Windsor) - "Giao diện mặc định" là gì?

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

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

nghĩa là gì một "giao diện mặc định"?

Trả lời

6

Đó là một heuristic looks for an implementation of an interface by removing the leading I:

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

Tuy nhiên, theo ý kiến ​​của tôi, sử dụng tính năng này có mùi của một số over-abundance of 1:1 interfaces.

+1

ok, nhưng không phải là toàn bộ các điểm tỷ lệ 1: 1 DI các linh kiện/dịch vụ mà chỉ có một (pluggable) thực hiện ví dụ ứng dụng này (cho dù đó là bộ ghép đo hoặc một ứng dụng web) - điểm là: pluggability? –

+9

Trên thực tế, nó cũng có thể khớp với những thứ như: 'IFoo' ->' MarksSuperFoo' Về cơ bản có vẻ như, sau khi bạn loại bỏ 'I' tên lớp __contains__ hàng đầu của tên giao diện –