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.
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
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ự. –