Автоматическая очистка кода .NET, сеанса nhibernate и очистки текстового данных LINQ? - PullRequest
0 голосов
/ 18 апреля 2010

В моей задаче использовать лучшие практики кодирования у меня есть несколько вопросов об автоматической обработке кода. Я слышал разные ответы как онлайн, так и с другими разработчиками / программистами на моей работе. Я не уверен, что мне следовало бы разделить их на 3 вопроса, но все они вроде как связаны:

1) Как .NET обрабатывает экземпляры классов и другие вещи кода, которые занимают память? Недавно я узнал об использовании шаблона фабрики для некоторых вещей, таких как классы обслуживания, чтобы они создавались только один раз во всем приложении, но затем мне сказали, что .NET при обработке большинства этих вещей автоматически обрабатывает их при упоминании.

2) Как сеанс Nhibernate обрабатывает автоматическую очистку от неиспользуемых вещей? Я видел, как некоторые говорят, что он отлично справляется с управлением автоматически, и вам просто нужно использовать фабрику сессий, и все, нет необходимости закрывать ее. Но я также прочитал и, кажется, много примеров, когда люди закрывают сеанс гибернации.

3) Как это обрабатывает текст данных LINQ? Большую часть времени я никогда не удалял свой текстовый текст, и приложение не видело, что его ударили по производительности (хотя я не выполняю ничего очень интенсивно), но большинство людей рекомендуют утилизировать ваш информационный текст после того, как вы закончите с ним. , Однако я видел много примеров кода, где метод dispose никогда не вызывался. Кроме того, в целом я нахожу несколько раздражающим, что вы не можете получить доступ даже к объектам, связанным с дочерними объектами одного уровня, после удаления текстового контекста, если вы не расширили их и в запросе.

Спасибо всем. Я до сих пор люблю этот сайт, я как бы теряюсь и часами просто читаю здесь что-то. =)

1 Ответ

2 голосов
/ 18 апреля 2010

1) .NET выполняет сборку мусора и прочее, но не создает экземпляры и не предоставляет их вам всегда, для этого вам необходим контейнер IoC, такой как Autofac .

2) сам по себе сеанс не отключается, его нужно поместить в блок using. Но он заботится о других вещах, которыми управляет.

3) Всегда хорошая идея избавляться от вещей, особенно от неуправляемых ресурсов. Так что, как правило, помещайте подобные вещи в блок использования.

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