2010-09-26 3 views
14

Bất cứ ai sử dụng NServiceBus 2.0 thành công với Unity 2.0?NServiceBus với Unity 2.0?

Tôi đã cố gắng biên dịch các nguồn NServiceBus.ObjectBuilder.Unity.dll đối với các hội đồng Unity 2.0 nhưng có một số lỗi biên dịch do các chữ ký thay đổi/xóa của nhiều phương thức đối tượng trong Unity mới.

Trong tài liệu Udi Dahan says gắn bất kỳ vùng chứa nào cũng dễ dàng như triển khai 5 phương pháp IContainer. Nhưng khi tôi nhìn vào NServiceBus.ObjectBuilder.Unity thực hiện tôi thấy rằng có một LOT nhiều công việc phải được thực hiện. Tại sao lại như vậy?

+0

Bạn có ý nghĩa gì với "rất nhiều việc phải làm" (bạn có thể cụ thể hơn) không? Việc thực hiện chỉ cần gọi các phương thức Unity thích hợp và trả về các đối tượng đã tạo theo ngữ nghĩa của Giao diện. – tobsen

+0

@tobsen Khi tôi tìm đến nguồn này, tôi không thấy sự đơn giản: https://github.com/NServiceBus/NServiceBus/tree/master/src/impl/ObjectBuilder/ObjectBuilder.Unity. Dường như người triển khai nên biết về kiến ​​trúc nội bộ của NServiceBus. Hãy cho tôi biết nếu tôi sai ... –

Trả lời

3

Unity, theo mặc định, hoạt động khác với những gì NSB mong đợi. Đó là lý do tại sao cần có một số phần mở rộng tùy chỉnh để làm cho nó tương thích với hợp đồng ObjectBuilder. Có hai khác biệt chính:

  • Unity yêu cầu DependencyAttribute để tiêm phụ thuộc vào thuộc tính. NSB hy vọng ObjectBuilder để tiêm trong bất kỳ tài sản đó với phù hợp với loại
  • Khi làm tiêm sở hữu đoàn kết đối xử với phụ thuộc tài sản như bắt buộc trong khi NSB hy vọng họ là tùy chọn.

Tôi tin rằng các tính năng này được giữ nguyên trong phiên bản 2.0 và sẽ dễ dàng di chuyển chúng. Tôi nên có một thời gian trong tuần này và tôi hy vọng tôi sẽ tạo ra một Unity v2 thực hiện. Tôi sẽ cho bạn biết khi nào nó kết thúc.

Chỉnh sửa: Xong. Trình xây dựng đối tượng Unit 2 nằm trong thân cây.

+1

Đây là liên kết đến cam kết: https://github.com/NServiceBus/NServiceBus/commit/324a112229bedd55baaff144eea9a81126a0f343 –

+0

1.2 vẫn là phiên bản được triển khai trên Nuget. Bất kỳ cơ hội này sẽ được cập nhật? Unity 2.x đã được ra trong một thời gian rất dài và thực sự nên là mặc định vào thời điểm này. –