Ленивая инициализация для объектов, которые инициализируются отражением - PullRequest
0 голосов
/ 20 июля 2011

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

Ответы [ 2 ]

1 голос
/ 20 июля 2011

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

1 голос
/ 20 июля 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...