9

Tôi muốn thêm DI vào thư viện lớp học của tôi là một phần của ứng dụng web MVC4. Vì vậy, tôi đã có tùy chọn Unity, structuremap, ninject. Tôi đã chọn sự thống nhất vì nó đã được đề cập trong mẫu Asp.Net.unity hoặc unity.mvc4 cho ứng dụng MVC4

Khi tôi tìm kiếm Nuget cho Unity, tôi thấy có nhiều biến thể của Unity. Cái nào phù hợp với thư viện của tôi, Unity hoặc Unity.MVC4

Trả lời

7

Bạn sẽ muốn thêm gói Unity.MVC4, vì nó cung cấp sự tích hợp giữa Unity và ASP.NET MVC 4. Tuy nhiên, Unity.MVC4 phụ thuộc vào Unity , bằng cách thêm vào đó bạn sẽ nhận được cả hai gói.

Bạn cũng sẽ cần một cái gì đó như thế này để cấu hình tích hợp:

var container = new UnityContainer(); 
// configure container here (RegisterType, etc.), then make sure MVC 4 uses Unity... 
DependencyResolver.SetResolver(new Unity.Mvc4.UnityDependencyResolver(container)); 
3

Bạn nên sử dụng NuGet để cài đặt Unity bootstrapper cho ASP.NET MVC. Nó được tạo ra bởi Microsoft và sử dụng Unity 3.0 mới nhất. Nó cũng được đề cập trong Developer's Guide to Microsoft Unity ở trang 45.

Tôi đã thử Unity.MVC4 hôm nay. Phiên bản 1.2 hiện tại vẫn sử dụng Unity 2. Có thể phiên bản tiếp theo sẽ sử dụng Unity 3.0 mới. Tôi đoán rằng cả hai nên được ok sau đó.

+0

Cảm ơn bạn, trông chắc chắn. – Ron

0

Có cách nào để sử dụng cấu hình xml với unity.mvc4 thay vì sử dụng

container.RegisterType<itestservice, testservice="">(); 

Mã cái gì đó như LoadConfiguration() và thêm cấu hình để web.config?

Cảm ơn

Các vấn đề liên quan