Trong một dự án WPF (với lăng kính), chúng tôi đang sử dụng Unity
làm khung DI.Làm cách nào để gỡ rối độ phân giải Unity?
Gần đây, sau khi chúng tôi hợp nhất hai chi nhánh lớn, chúng tôi không thể khởi động ứng dụng của mình, chúng tôi đã có StackOverflowException
. Do tính chất của ngoại lệ, chúng tôi không thể nhận được ngăn xếp cuộc gọi hoặc giá trị hiện tại của họ, chúng tôi chỉ nắm bắt được vấn đề đang đến từ Unity do không gian tên.
Chúng tôi đã dành hơn 5 giờ để tìm được vấn đề này đã xảy ra:
Giản:
Chúng tôi đã có 3-4 dịch vụ (A, B, C và D), mỗi một với một thực hiện và tại một số điểm, dịch vụ A yêu cầu dịch vụ B, yêu cầu dịch vụ C, yêu cầu dịch vụ D, yêu cầu dịch vụ A). Về cơ bản một tham chiếu tuần hoàn.
Chúng tôi muốn biết nếu có bất kỳ khả năng để thêm một số bản ghi rằng Unity
đang cố gắng để giải quyết vụ A với việc thực hiện X, và được yêu cầu để giải quyết vụ B, ...
này sẽ giúp chúng tôi rất nhiều để gỡ lỗi vấn đề này, để trực tiếp xem những dịch vụ đã được liên quan trong tham chiếu tuần hoàn này.
Có cách nào để đạt được điều này không?
Không có tracing hoặc đầu ra trong Unity khi giải quyết các loại. Có thể bạn có thể sử dụng Tiện ích mở rộng tùy chỉnh cho Unity mở rộng với hành vi mong muốn của bạn. – Jehof