Ленивая инициализация для объектов, которые инициализируются отражением

У меня есть свой атрибут [Finder] для полей и свойств, и у меня есть своего рода фабрика, которая инициализирует все поля и свойства, как я хочу. Вопрос: я хочу сделать ленивую инициализацию (объект создается только при вызове некоторых методов этого объекта) для объектов, которые я инициализирую. Примечание: свойства и поля могут быть разных типов.

2 ответа

Решение

В зависимости от того, как происходит инициализация, вы можете использовать новый Lazy<T> тип. Другая возможность - возвращать автоматически созданный подкласс вашего класса - прокси-сервер, который проверяет состояние инициализации при каждом вызове метода и выполняет инициализацию при необходимости.

Вы можете использовать System.Lazy;. В противном случае вам придется реализовать логику, чтобы отслеживать, какие свойства / поля были инициализированы самостоятельно.

Другие вопросы по тегам