2013-01-16 37 views
5

Tôi thừa hưởng một cơ sở mã không được suy nghĩ kỹ và đang chạy vào một số vấn đề tham chiếu vòng tròn. Nhóm của tôi hiện không có thời gian hoặc nguồn lực để thực hiện một công cụ tái cấu trúc khổng lồ, vì vậy tôi đã tự hỏi liệu có một số chuyển đổi mà tôi có thể lật mà nói "xây dựng hai dll này một cách nguyên tử."Có bất kỳ hacks nào để giải quyết các vấn đề tham chiếu vòng tròn không?

Một ví dụ đơn giản:

DLL D0: 
    class A1 -> References B1 
    class B1 -> References A1 

Lớp A1 và B1 có liên hệ với nhau, và khi họ đang ở trong DLL cùng, điều này là tốt - nhưng họ không có nhiều điểm chung nên tôi muốn chia chúng thành các dll riêng biệt.

Tuy nhiên, sau đây là không thể vì một vấn đề tham chiếu vòng tròn:

DLL D1: class A1 -> References D2.B1 
DLL D2: class B1 -> References D1.A1 

Tôi muốn có thể cho biết MSBuild xây dựng (D1 + D2), nếu như tất cả các mã đều trong một dll đơn . Tôi có thể làm gì ở đây hay làm theo SOP và "hack nó vào?"

Tuyên bố từ chối trách nhiệm: Tôi hiểu điều này có nghĩa là tôi có vấn đề lớn hơn với mô hình của mình (nhưng rõ ràng nhất là sử dụng giao diện không đúng), nhưng trong công ty nhỏ, các tình huống thực tế khiến tôi phải cúi xuống để sửa lỗi sản xuất với chi phí thực hành tốt nhất.

+1

Lợi thế của việc chia chúng thành các tệp vật lý riêng biệt là gì? Bạn có thể có chúng trong các dự án riêng biệt và sử dụng MSBuild để xây dựng một đơn .netModule mà sau đó có thể được biên dịch thành một tệp thực thi ... nhưng đi theo cách khác ... không quá nhiều mà không cần tái cấu trúc các giao diện và tiêm phụ thuộc. – cfeduke

+2

Có vẻ như hack là những gì dẫn đến vấn đề tham chiếu vòng tròn của bạn và chúng sẽ không phải là một phần của giải pháp thực sự. –

Trả lời

12

Đội tuyển của tôi hiện tại không có thời gian hay nguồn lực để làm một Refactor khổng lồ

như vậy ... XIN ĐỪNG LÀM THẾ:

nhưng họ không có nhiều điểm chung nên tôi muốn chia nhỏ chúng thành các dll riêng biệt.

Để yên một mình cho đến khi bạn có thể áp dụng tái cấu trúc đáng kể cho toàn bộ giải pháp.

Đây là trường hợp việc tái cấu trúc một tổ chức peeve sẽ buộc một lượng lớn việc tái cấu trúc xuống luồng. Và bạn có nhiều vấn đề lớn hơn để giải quyết. Tôi đã từng ở đó. Tôi cảm thấy cho bạn. Nguoi ban doi may man.

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