Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Как закрыть коннекшин автоматически?
|
|||
|---|---|---|---|
|
#18+
Вот в MVC есть контроллер. И при вызове метода GetProjectCompletionList коннекшин будет закрыт автоматически даже без вызова Dispose(). Он сам вызовется неявно. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. Делаю свой класс с IDisposable. И метод Dispose() не вызывается неявно, когда объект выходит из области видимости, а только при закрытии приложения. Почему так? Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2015, 22:39 |
|
||
|
Как закрыть коннекшин автоматически?
|
|||
|---|---|---|---|
|
#18+
Вот чувак утверждает, что должно закрываться автоматом. Но это не так. авторWith the above class implementing IDisposable, the connection will always be closed no matter how the user will use this class. This way no open connections will be left. http://www.codeproject.com/Articles/442069/ASP-NET-How-To-Use-Open-Close-Connections-Correctl ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2015, 22:46 |
|
||
|
Как закрыть коннекшин автоматически?
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2015, 22:46 |
|
||
|
Как закрыть коннекшин автоматически?
|
|||
|---|---|---|---|
|
#18+
Relic Hunterкогда объект выходит из области видимости область видимости это в C++ и называется RAII, в C# не действует область видимости. только область using. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2015, 22:47 |
|
||
|
Как закрыть коннекшин автоматически?
|
|||
|---|---|---|---|
|
#18+
Relic Hunter http://www.codeproject.com/Articles/442069/ASP-NET-How-To-Use-Open-Close-Connections-Correctl дебильная статья, отвратительное уродское решение. лучше заюзай Autofac, он это делает за тебя, а ты куришь бамбук и ни о чём не парешься, ни о паттернах никаких, говнокодишь себе потихонечку, а Autofac подчищает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2015, 22:48 |
|
||
|
Как закрыть коннекшин автоматически?
|
|||
|---|---|---|---|
|
#18+
hVosttRelic Hunter, ничё не понял. ты про dispose паттерн вообще читал? про using {} ??А без "using" нельзя? У меня часть проектов на VB.NET. Там "using" нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2015, 22:54 |
|
||
|
Как закрыть коннекшин автоматически?
|
|||
|---|---|---|---|
|
#18+
Relic HunterА без "using" нельзя? У меня часть проектов на VB.NET. Там "using" нет. нельзя есть https://msdn.microsoft.com/ru-ru/library/htd05whh(v=vs.120).aspx без using смысл IDisposable несколько меркнет, и почти теряется, если не использовать внешнее управление циклом жизнидеятельности объектов, например, DI. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2015, 23:21 |
|
||
|
Как закрыть коннекшин автоматически?
|
|||
|---|---|---|---|
|
#18+
Relic Hunter, Больше хороших статей от индусов читайте! И ракеты полетят вниз, а не вверх ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2015, 23:44 |
|
||
|
Как закрыть коннекшин автоматически?
|
|||
|---|---|---|---|
|
#18+
Relic HunterhVosttRelic Hunter, ничё не понял. ты про dispose паттерн вообще читал? про using {} ??А без "using" нельзя? У меня часть проектов на VB.NET. Там "using" нет. Нельзяю C# не есть C++. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2015, 23:45 |
|
||
|
Как закрыть коннекшин автоматически?
|
|||
|---|---|---|---|
|
#18+
hVostt, Почему в MVC контроллере вызов метода автоматически гарантирует вызов Dispose() и освобождение контекста? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2015, 23:46 |
|
||
|
Как закрыть коннекшин автоматически?
|
|||
|---|---|---|---|
|
#18+
Relic HunterhVostt, Почему в MVC контроллере вызов метода автоматически гарантирует вызов Dispose() и освобождение контекста? ??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2015, 23:46 |
|
||
|
Как закрыть коннекшин автоматически?
|
|||
|---|---|---|---|
|
#18+
Relic Hunter, Автоматически гарантирует вызов Dispose только выражение using или прямой вызов метода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2015, 23:48 |
|
||
|
Как закрыть коннекшин автоматически?
|
|||
|---|---|---|---|
|
#18+
AxeleronRelic Hunter, Автоматически гарантирует вызов Dispose только выражение using или прямой вызов метода.Это я понял. Просто бытовало мнение, если уж я реализую IDisposable, то Dispose() вызовется по-любому, с юзинг без юзинг, по-барабану... Жаль. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2015, 00:00 |
|
||
|
Как закрыть коннекшин автоматически?
|
|||
|---|---|---|---|
|
#18+
Relic HunterAxeleronRelic Hunter, Автоматически гарантирует вызов Dispose только выражение using или прямой вызов метода.Это я понял. Просто бытовало мнение, если уж я реализую IDisposable, то Dispose() вызовется по-любому, с юзинг без юзинг, по-барабану... Жаль. Нет, только через using. IDisposable расширяет возможности класса, но не гарантирует ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2015, 00:26 |
|
||
|
Как закрыть коннекшин автоматически?
|
|||
|---|---|---|---|
|
#18+
AxeleronНет, только через using. IDisposable расширяет возможности класса, но не гарантирует Можно еще вызвать явно :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2015, 14:27 |
|
||
|
Как закрыть коннекшин автоматически?
|
|||
|---|---|---|---|
|
#18+
ЕвгенийВAxeleronНет, только через using. IDisposable расширяет возможности класса, но не гарантирует Можно еще вызвать явно :) Да, но не автоматом. Если не используется using, то Dispose метод автоматом не будет вызван. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2015, 14:29 |
|
||
|
Как закрыть коннекшин автоматически?
|
|||
|---|---|---|---|
|
#18+
Dispose служит для освобождения захваченных ресурсов, он гарантирует что ресурсы будут освобождены при уборке мусора за счет перекрытия финализатора объекта, но неопределенно когда, ( защита от дурака) Можно сподобиться заботой о своем приложении и вызывать диспозе через конструкцию using, впрочем в области транс акции он служит совсем не для этого, то что using гарантирует вызов диспозе, банальное заблуждение, когда вы вырастите большие то поймете, что это в некоторых случаях совсем не так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2015, 15:31 |
|
||
|
Как закрыть коннекшин автоматически?
|
|||
|---|---|---|---|
|
#18+
Где-то в степито что using гарантирует вызов диспозе, банальное заблуждение Гарантирует. MSDN Пора подтягивать основы :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2015, 15:35 |
|
||
|
Как закрыть коннекшин автоматически?
|
|||
|---|---|---|---|
|
#18+
Axeleron, гыггы, а если нет, и я прав.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2015, 15:38 |
|
||
|
Как закрыть коннекшин автоматически?
|
|||
|---|---|---|---|
|
#18+
Где-то в степи, MSDN (Remarks)The using statement ensures that Dispose is called even if an exception occurs while you are calling methods on the object. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2015, 15:40 |
|
||
|
Как закрыть коннекшин автоматически?
|
|||
|---|---|---|---|
|
#18+
И никаких если :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2015, 15:41 |
|
||
|
Как закрыть коннекшин автоматически?
|
|||
|---|---|---|---|
|
#18+
Axeleron, гыгы.. хотите кода? там всего 8 -10 строчек( пару лет назад выкладывал его сюда), подумаю, отдам мсу на сайт в мемориз ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2015, 15:45 |
|
||
|
Как закрыть коннекшин автоматически?
|
|||
|---|---|---|---|
|
#18+
Где-то в степи, Ну? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2015, 15:46 |
|
||
|
Как закрыть коннекшин автоматически?
|
|||
|---|---|---|---|
|
#18+
Что интересно, в MVC using используется штатно вообще "не по назначению" в Razor. В using оборачивается запись формы штатным хелпером в выходной поток. Конструктор пишет в поток заголовок, внутри using пользователь пишет любой свой код, в Dispose штатный класс пишет в выходной поток "подвал" формы. Так что хелпер рассчитывает на гарантированный вызов Dispose по окончании конструкции using )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2015, 15:48 |
|
||
|
Как закрыть коннекшин автоматически?
|
|||
|---|---|---|---|
|
#18+
Где-то в степиAxeleron, гыгы.. хотите кода? там всего 8 -10 строчек( пару лет назад выкладывал его сюда), подумаю, отдам мсу на сайт в мемориз давай )) как сломать всегда интересно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2015, 18:07 |
|
||
|
Как закрыть коннекшин автоматически?
|
|||
|---|---|---|---|
|
#18+
Где-то в степигыгы.. хотите кода? Гыгыгы... Хатим, хатим, хатим! Коды в студию! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2015, 18:19 |
|
||
|
Как закрыть коннекшин автоматически?
|
|||
|---|---|---|---|
|
#18+
Где-то в степи, Только не такой пример, где в классе имплементирующем интерфейс IDisposable метод Dispose пустой, а после этого оказывается, что отчего-то ресурсы не высвобождаются, лажно? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2015, 18:24 |
|
||
|
Как закрыть коннекшин автоматически?
|
|||
|---|---|---|---|
|
#18+
Не понятно зачем ждать высвобождения ресурсов GC после того, когда функция уже исполнилась? Закончилась ну ли ладно - освобождаем. Помнится в C++ - объекты двух типов: в куче, которые создаются явно через "new" и их уничтожать нужно тоже руками "delete" и стековые, которые создаются и уничтожаются неявно при входе и выходе из метода. И никаких тебе IDisposable :) Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2015, 19:25 |
|
||
|
Как закрыть коннекшин автоматически?
|
|||
|---|---|---|---|
|
#18+
Relic Hunter, код GC теперь открыт. Фпирёд, если что-то не понятно :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2015, 19:27 |
|
||
|
Как закрыть коннекшин автоматически?
|
|||
|---|---|---|---|
|
#18+
skyANARelic Hunter, код GC теперь открыт. Фпирёд, если что-то не понятно :)Для стековых объектов как и переменных GC не нужен, в том то и дело. push/pop все ушло. Вы помните хоть как функции вызываются на самом деле? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2015, 19:37 |
|
||
|
Как закрыть коннекшин автоматически?
|
|||
|---|---|---|---|
|
#18+
Relic HunterskyANARelic Hunter, код GC теперь открыт. Фпирёд, если что-то не понятно :)Для стековых объектов как и переменных GC не нужен, в том то и дело. push/pop все ушло. Вы помните хоть как функции вызываются на самом деле? Ты перепутал 2 абсолютно разных мира. Да и в С++ в похожем на C# коде, помаши ручкой RAII: Код: plaintext 1. 2. 3. 4. 5. Альтернативы Foo foo(); в C# нет, с чего ты решил, что интерфейс IDisposable превратит любой обычный класс в какой-то волшебный и особенный, который пятой точкой чувствует когда программер хочет, чтобы он самоуничтожился? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2015, 19:53 |
|
||
|
Как закрыть коннекшин автоматически?
|
|||
|---|---|---|---|
|
#18+
Relic HunterДля стековых объектов как и переменных GC не нужен Не проблема, для struct-переменных в C# GC итак не используется, всё често сидит в стеке. Какие проблемы? Осознание когда придёт? Рекомендую Рихтера. Снимет все вопросы, как рукой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2015, 19:55 |
|
||
|
Как закрыть коннекшин автоматически?
|
|||
|---|---|---|---|
|
#18+
Где-то в степитам всего 8 -10 строчек ну што там с хакирскими кодами? кода уже? Пентагон ждёт )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2015, 19:57 |
|
||
|
Как закрыть коннекшин автоматически?
|
|||
|---|---|---|---|
|
#18+
hVostt, нарисовал и отправил мсу пару примеров - подписывайтесь )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2015, 20:02 |
|
||
|
Как закрыть коннекшин автоматически?
|
|||
|---|---|---|---|
|
#18+
hVosttв C# нет, с чего ты решил, что интерфейс IDisposable превратит любой обычный класс в какой-то волшебный и особенный, который пятой точкой чувствует когда программер хочет, чтобы он самоуничтожился? Ты помнишь, как COM освобождается? Отож... Простой подсчет ссылок на интерфейс (reference count). Ссылок нет - самоуничтожается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2015, 20:07 |
|
||
|
Как закрыть коннекшин автоматически?
|
|||
|---|---|---|---|
|
#18+
Relic HunterТы помнишь, как COM освобождается? Отож... Простой подсчет ссылок на интерфейс (reference count). Ссылок нет - самоуничтожается. Помню. А ещё помню, что COM equals АД, не смотря на попытки избежать жопы с помощью гуидов и такой-то матери. Подсчёт ссылок в C++ есть через шаблонные контейнеры ссылок, и всё равно бардак, и всё равно утечки и прочий треш. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2015, 20:57 |
|
||
|
Как закрыть коннекшин автоматически?
|
|||
|---|---|---|---|
|
#18+
Relic HunterПростой подсчет ссылок на интерфейс (reference count) особенно хорош при наличии циклических ссылок ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2015, 23:12 |
|
||
|
Как закрыть коннекшин автоматически?
|
|||
|---|---|---|---|
|
#18+
Где-то в степиhVostt, нарисовал и отправил мсу пару примеров - подписывайтесь )) Congratulations, mister agent 007! We are not sure will will get into it though. But well done anyway! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2015, 01:32 |
|
||
|
Как закрыть коннекшин автоматически?
|
|||
|---|---|---|---|
|
#18+
Relic HunterskyANARelic Hunter, код GC теперь открыт. Фпирёд, если что-то не понятно :)Для стековых объектов как и переменных GC не нужен, в том то и дело. push/pop все ушло. Вы помните хоть как функции вызываются на самом деле?Вот оно оказывается к чему клоните. А что в своих примерах кода Вы считаете стековыми объектами? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2015, 05:24 |
|
||
|
Как закрыть коннекшин автоматически?
|
|||
|---|---|---|---|
|
#18+
Relic Hunter, Имхо вы наделяете паттерн диспозе какими то мифическими свойствами ( как и впрочем 80% дотнетчиков), он к уборщику мусора не имеет прямого отношения, лично я бы сказал никакого. он не удаляет объект из памяти, нет у него таких полномочий, это обыкновенный банальный метод, где как правило принято освобождать ресурсы захваченный на той стоне холма, там даже могут быть исключения ( что для уборщика - п....ц), сам объект удалится на общих основаниях без использования финализатора ( классическая схема). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2015, 07:00 |
|
||
|
Как закрыть коннекшин автоматически?
|
|||
|---|---|---|---|
|
#18+
Relic HunterskyANARelic Hunter, код GC теперь открыт. Фпирёд, если что-то не понятно :)Для стековых объектов как и переменных GC не нужен, в том то и дело. push/pop все ушло. Вы помните хоть как функции вызываются на самом деле?Конечно помним, и радуемся, что тёмные времена ушли навсегда. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2015, 08:43 |
|
||
|
Как закрыть коннекшин автоматически?
|
|||
|---|---|---|---|
|
#18+
Где-то в степи, так где код то? что using не вызовет Dispose, у класса реализующий паттерн. ибо using всего навсего сахар преобразующийся в Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. п.с. при этом объект естественно не удалится тут же, это работа уже CG и когда он там сработает, в диспозе как правило закрывают файлы, конекшен к бд и прочим ресурсам всего навсего. вообще с этим патерном можно не парится через https://github.com/Fody/Usable но на продакшене я предпочитаю ручками, а в демках почему бы и нет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2015, 09:36 |
|
||
|
Как закрыть коннекшин автоматически?
|
|||
|---|---|---|---|
|
#18+
handmadeFromRu, я тут подумал, а ведь он может не вызывать, если в конструкторе навернулось что то ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2015, 09:49 |
|
||
|
Как закрыть коннекшин автоматически?
|
|||
|---|---|---|---|
|
#18+
handmadeFromRu, давай пойдем дальше, конструктор сработал захват произошел ексепшен может вывалиться при инициализации чего то в этом объекте, х с ним если простая инициализация, она попадет в try, а если по месту без проверки this Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. и он будет болтаться бесхозный в куче ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2015, 10:14 |
|
||
|
Как закрыть коннекшин автоматически?
|
|||
|---|---|---|---|
|
#18+
Где-то в степи, можно сказать что такой тип изобрела какая та жопа, но подляны могут быть и с фундаментальными типами кто мне запретит сделать так: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2015, 10:23 |
|
||
|
|

start [/forum/topic.php?all=1&fid=18&tid=1356309]: |
0ms |
get settings: |
10ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
30ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
76ms |
get tp. blocked users: |
1ms |
| others: | 222ms |
| total: | 375ms |

| 0 / 0 |
