Size: a a a

2020 December 17

AH

Ayrat Hudaygulov in pro.net
чтобы программно разбираться нужны языки со статическим выделением памяти и гарантиями. Сишарп не из их числа, поэтому не стоит и пытаться тут чот кодом решить. Код ревью на отсутствие юзингов и зоркий глаз на евент хендлеры, таймеры и прочую говнину
источник

РЩ

Роман Щербаков... in pro.net
Мне ещё нравятся всякие статики
источник

MS

Mark Shevchenko in pro.net
Был случай, когда время жизни класса в IoC указали неправильно. Поставили Transient, объект создавался по каждому запросу, а надо было Scoped, один экземпляр на веб-запрос. Проблема была в том, что класс реализовывал IDisposable. IoC-контейнер такие ссылки хранил у себя, чтобы освобождать при закрытии скоупа. Transient означает, что все эти объекты складываются в корневом скоупе. В общем, они там копились и не освобождались, потому что скоуп эти ссылки помнил. Альтернативно можно было поменять поведение контейнера, чтобы не запоминал IDisposable-объекты.
источник

A

Anatoly in pro.net
Mark Shevchenko
Был случай, когда время жизни класса в IoC указали неправильно. Поставили Transient, объект создавался по каждому запросу, а надо было Scoped, один экземпляр на веб-запрос. Проблема была в том, что класс реализовывал IDisposable. IoC-контейнер такие ссылки хранил у себя, чтобы освобождать при закрытии скоупа. Transient означает, что все эти объекты складываются в корневом скоупе. В общем, они там копились и не освобождались, потому что скоуп эти ссылки помнил. Альтернативно можно было поменять поведение контейнера, чтобы не запоминал IDisposable-объекты.
Что-то пахнет кулсторей, что транзиенты диспозятся только по завершению приложения
источник

A

Anatoly in pro.net
Это прямо очень интересная история получается
источник

MS

Mark Shevchenko in pro.net
Да, так и есть. По крайней мере, так было в Autofac, который у нас тогда был.
источник

A

Anatoly in pro.net
Надо сегодня потестировать
источник

A

Anatoly in pro.net
Какой .net?
источник

MS

Mark Shevchenko in pro.net
источник

MS

Mark Shevchenko in pro.net
У нас был на тот момент .NET Framework, но это от IoC зависит, чем от дотнета. В Autofac до сих пор такое поведение.
источник

A

Anton in pro.net
Mark Shevchenko
Был случай, когда время жизни класса в IoC указали неправильно. Поставили Transient, объект создавался по каждому запросу, а надо было Scoped, один экземпляр на веб-запрос. Проблема была в том, что класс реализовывал IDisposable. IoC-контейнер такие ссылки хранил у себя, чтобы освобождать при закрытии скоупа. Transient означает, что все эти объекты складываются в корневом скоупе. В общем, они там копились и не освобождались, потому что скоуп эти ссылки помнил. Альтернативно можно было поменять поведение контейнера, чтобы не запоминал IDisposable-объекты.
надеюсь это шутка?
источник

MS

Mark Shevchenko in pro.net
Anton
надеюсь это шутка?
В смысле?
источник

IC

Ilya Chernoudov in pro.net
Mark Shevchenko
Был случай, когда время жизни класса в IoC указали неправильно. Поставили Transient, объект создавался по каждому запросу, а надо было Scoped, один экземпляр на веб-запрос. Проблема была в том, что класс реализовывал IDisposable. IoC-контейнер такие ссылки хранил у себя, чтобы освобождать при закрытии скоупа. Transient означает, что все эти объекты складываются в корневом скоупе. В общем, они там копились и не освобождались, потому что скоуп эти ссылки помнил. Альтернативно можно было поменять поведение контейнера, чтобы не запоминал IDisposable-объекты.
Очень странно, они должны диспозиться вместе со скоупом
источник

IC

Ilya Chernoudov in pro.net
То есть их много, но диспозиться вместе со скоупом должны все равно
источник

MS

Mark Shevchenko in pro.net
Ну да. Но Transient как раз означает, что скоуп корневой, и они до конца жизни приложения не диспозятся.
источник

IC

Ilya Chernoudov in pro.net
Если ты резолвишь их из рута - то тогда да, ведут себя как синглтоны
источник

A

Anton in pro.net
Вот да, я тоже не понял в каком месте резолв идет
источник

MS

Mark Shevchenko in pro.net
Синглтоны один раз создатся и живут в единственном экземпляре. Транзиенты создаются на каждый запрос.
источник

AH

Ayrat Hudaygulov in pro.net
Mark Shevchenko
Синглтоны один раз создатся и живут в единственном экземпляре. Транзиенты создаются на каждый запрос.
они создаются по требованию, но исчезать должны по скоупу родителя
источник

AH

Ayrat Hudaygulov in pro.net
ну в любом контейнере это так иначе пизда была бы
источник