2012-01-16 2 views
6

Tôi có một DLL cung cấp một điểm vào cho một ứng dụng ASP.MVC. Hãy gọi số này Primary.DLL. Trong Primary.DLL, có bối cảnh dữ liệu LINQ-to-SQL và các lớp khác được định nghĩa. Đâu đó trong số Application_Start(), Assembly.Load() được gọi để tải Secondary.DLL. Phụ không được tham chiếu trong tệp dự án Primary.DLL. Nhưng Primary được tham chiếu trong tệp dự án của Secondary.DLL vì bối cảnh dữ liệu LINQ-to-SQL và các lớp khác được đề cập ở trên được sử dụng trong Secondary.Phụ thuộc DLL tròn trong .NET

Điều này có tạo ra sự cố phụ thuộc vòng tròn không? Có vấn đề gì với loại thiết kế này không?

+1

Bạn có gặp phải sự cố cụ thể với nó không? –

+0

Ngẫu nhiên, kể từ khi phụ thuộc vòng tròn làm việc nếu bạn bằng cách nào đó đánh lừa trình biên dịch vào tạo ra chúng, điều này không thể là một vấn đề. – Joshua

Trả lời

1

Chúng tôi luôn làm việc này với các DLL tùy chỉnh dành riêng cho khách hàng. Chúng tôi sử dụng chức năng tương tự trong các ứng dụng web, dịch vụ và exes trên máy tính để bàn.

DLL khách hàng tham khảo DLL dự án cơ sở để chúng có thể kế thừa từ các lớp khác nhau và triển khai giao diện. Để làm như vậy, họ phải có một tham chiếu đến dll cơ bản.

Khi khởi động ứng dụng (global.asax Application_Start hoặc thường trình khởi tạo của exe), chúng tôi tải bất kỳ DLL tùy chỉnh được phát hiện nào thông qua Assembly.Load và chắc chắn nó không tạo tham chiếu chéo.

+0

Đây là tùy chỉnh chính xác mà tôi đang cố gắng thực hiện. Các "hợp đồng" các lớp học và giao diện được xác định rõ, nhưng việc thực hiện sẽ thay đổi sau năm năm. Các DLL tương lai được phát hiện tại thời gian chạy, nhưng để xây dựng (biên dịch) chúng, chúng phải tham khảo một số lớp và giao diện được định nghĩa trong DLL cơ sở. –

1

Hội đồng không được tải lại vào AppDomain và bạn chỉ đang tải Secondary.dll trong Application_Start để điều này không gây ra bất kỳ sự cố nào và cũng không dẫn đến bất kỳ biểu hiện phụ thuộc vòng tròn nào.

1

Nó sẽ không tạo ra một vấn đề phụ thuộc vòng tròn, nhưng nó có thể không phải là một thiết kế tuyệt vời. Phụ thuộc thông tư yêu cầu một tham chiếu thực tế giữa hai hoặc nhiều dự án.