Tôi sử dụng sơ đồ cấu trúc trong các dự án của mình. Để thực hiện các cách triển khai khác nhau của một kho lưu trữ, tôi muốn có một công tắc trong app.config để thay đổi tất cả các triển khai thực tế của một kho lưu trữ thành các kho lưu trữ mô phỏng.
Giả sử rằng IRepository có hai triển khai RealRepository và MockRepository
ForRequestedType() .TheDefaultIsConcreteType();
Tôi muốn có một công tắc trong app.config/web.config, giả sử (Mock=1), thay đổi tất cả việc triển khai kho lưu trữ thực thành
ForRequestedType() .TheDefaultIsConcreteType();
Tôi không muốn viết toàn bộ định nghĩa plugin trong app.config, tôi chỉ muốn một công tắc, làm cách nào tôi có thể đạt được điều đó?
Mặc dù điều này có vẻ lạ nhưng hãy nhớ rằng mã đăng ký Bản đồ cấu trúc của bạn vẫn chỉ là C# và bạn có toàn bộ sức mạnh của ngôn ngữ này. Điều này có nghĩa là bạn có thể tự do sử dụng câu lệnh "if" khi cần thiết. Vì điều kiện của bạn dựa trên app.config nên bạn không cần tính đến các giá trị thay đổi khi chạy - bạn có thể sử dụng giá trị đó một cách an toàn tại thời điểm cấu hình khởi động.
if (appConfigIndicatesMockMode()){
ForRequestedType().TheDefaultIsConcreteType()
} khác {
ForRequestedType().TheDefaultIsConcreteType()
}
其中 appConfigIndicatesMockMode()
Là phương pháp đọc cài đặt app.config của bạn theo cách thông thường và trả về đúng hoặc sai.
Tôi là một lập trình viên xuất sắc, rất giỏi!