2008-12-11 43 views
6

Làm thế nào tôi có thể vượt qua một đối số hằng số null bằng cách sử dụng Castle Windsor? Tôi nghĩ rằng những điều sau đây sẽ hoạt độngCastle Windsor - đối số hàm tạo Null

<parameters> 
    <repository>null</repository> 
    <message>null</message> 
</parameters>` 

Trả lời

1

Sẽ tốt hơn nếu bạn chỉ cần thêm một hàm tạo công khai không tham số này, bạn sẽ không cần phải đăng ký tham số trong cấu hình?

1

Điều này đã được thảo luận một lúc trong danh sách thư và tại thời điểm tôi xem xét mã. Các giá trị rỗng được lọc một cách có chủ ý (chủ yếu là do độ phân giải loại phức tạp).

Tôi không thể tìm thấy cách đơn giản để tạo một trường hợp đặc biệt để thêm chúng.

+1

Tôi nghĩ lý do thực sự là các đối số hàm tạo là các phụ thuộc bắt buộc, do đó, null không có ý nghĩa ở đó. –

5

Nếu bạn muốn chúng trống, điều đó có nghĩa là chúng là những phụ thuộc không cần thiết. Bằng cách cho họ như là đối số ctor bạn đề nghị khác. Bạn nên thiết kế lại lớp của bạn để có một hàm tạo khác chỉ nhận các phụ thuộc thiết yếu, nếu bạn muốn chúng không thay đổi trong suốt thời gian tồn tại của một đối tượng (chỉ đọc) hoặc hiển thị chúng dưới dạng thuộc tính.

Với Windsor bạn không thể làm cho nó vượt qua null, vì những lý do được đề cập trong câu trả lời khác.

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