Tôi có phương thức nhà máy bên trong trình phân tích cú pháp. Về cơ bản khi tôi tải một mã thông báo, tôi tìm trình xử lý cho mã thông báo đó hoặc chuyển qua trình xử lý mặc định. Tôi đã thực hiện điều này như là một switch
và như là một Dictionary<string,Type>
nhưng cả hai phương pháp tiếp cận yêu cầu tôi để lưu trữ các bản đồ ở một nơi khác hơn là lớp xử lý.Sử dụng Ninject IOC để thay thế một nhà máy
Chúng tôi đang sử dụng Ninject cho IOC và vì vậy tôi đã nhận ra rằng mình cũng có thể làm điều đó bằng
kernel.Get<ITokenHandler>(tokenName);
nhưng điều đó không cứu tôi lưu trữ các thông tin về những mã thông báo xử lý có thể đối phó với tại 2 địa điểm . Có cách nào tôi có thể trang trí xử lý để điều này được ánh xạ tự động?
Một chút muộn để trở lại đây. Những gì tôi đã thực sự sau đó là một cách để đánh dấu các lớp bê tông ITokenHandler để tôi có thể xác định các ràng buộc mà Handler đã được tuyên bố. Bây giờ tôi đã đi với ví dụ của bạn là tất cả các thanh 1 của các ràng buộc là của mô hình: Ràng buộc(). >(). Đặt tên (tokenName); –
baralong