2009-11-07 17 views

Trả lời

0

Nếu bạn đang đề cập đến việc tải Assemblies không tĩnh ra khỏi hộp, không có nó không.

Có rất nhiều câu hỏi khác về vấn đề này, ví dụ như, Using Ninject in a plugin like architecture

12

Tôi khá chắc chắn đây là những gì bạn đang tìm kiếm:

var kernel = new StandardKernel(); 
kernel.Load(Assembly.Load("yourpath_to_assembly.dll"); 

Nếu bạn nhìn vào KernelBase với phản xạ trong Ninject. dll bạn sẽ thấy rằng cuộc gọi này sẽ đệ quy tải tất cả các mô-đun trong các hội đồng được nạp (phương pháp tải có một IEnumerable)

public void Load(IEnumerable<Assembly> assemblies) 
{ 
    foreach (Assembly assembly in assemblies) 
    { 
     this.Load(assembly.GetNinjectModules()); 
    } 
} 
3

Tôi không hoàn toàn theo đứng những gì bạn có nghĩa là "Giống như Unity" nhưng bạn có thể làm một vài điều khác nhau để tải hội đồng. Bản thân Ninject sẽ tải các assembly cục bộ cho các phần mở rộng/plugins theo mặc định. Ninject cũng có thể tải các lớp NinjectModule từ các assembly. Nếu bạn muốn làm điều gì đó phức tạp hơn, bạn có thể sử dụng dự án Ninject.Extensions.Conventions để thực hiện nhiều thao tác quét và loại khác nhau.

+0

Bạn có thể vui lòng cung cấp thêm chi tiết về cách làm cho Ninject "tải NinjectModule lớp học từ hội đồng"? wiki của Ninject bao gồm những thứ khá cơ bản. –

+0

Ok, tôi đã nhận được ngay bây giờ, tôi đã trộn các phiên bản Ninject trong dự án của mình. –

+0

Liên kết được cung cấp tới GitHub bị hỏng. Liên kết thực tế là https://github.com/ninject/Ninject.Extensions.Conventions. – realsonic

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