Tôi có thể tưởng tượng điều này có thể là khá thẳng về phía trước để làm trong Castle nhưng tôi mới đến công nghệ và đã được Googling cho giờ không có may mắn!Tôi làm cách nào để khởi tạo thành phần như Singleton khi đăng ký?
tôi có như sau:
container.Register(
Component.For<MySpecialClass>().UsingFactoryMethod(
() => new MySpecialClass()).LifeStyle.Singleton);
Bây giờ khá đúng đắn này đang được lười biếng-nạp, tức là biểu thức lambda thông qua vào UsingFactoryMethod() không được thực hiện cho đến khi tôi thậm chí đòi Castle để giải quyết cho tôi ví dụ của lớp.
Nhưng tôi muốn Castle tạo ví dụ ngay khi tôi đăng ký. Điều này có thể không?
Cảm ơn bạn! Đây là những gì tôi đã kết thúc bằng cách sử dụng - container.Register (Component.For(). Instance (new MySpecialClass())); –
jameskind
Điều này không giống như cách tiếp cận tốt nhất kể từ khi bạn không rời khỏi instantiation đến container, và do đó phá vỡ các mô hình IoC. –
@DavidPerlman Đúng vậy, khi tôi viết câu trả lời này, tôi nghĩ không có cách nào dễ dàng như câu trả lời gần đây của MosheLevi mô tả. –