Size: a a a

var chat = new Chat();

2021 February 03

NZ

Nick Z in var chat = new Chat();
Illya Karmazin
++, мы сейчас плавно перетекаем в веб)
Я как бы не считаю, что это всегда нужно делать(даже скорее наоборот - очень часто зачем-то на веб переползают), но таки на пространстве пост-СССР, впф в качестве объекта для поиска работы означает как правило какое-то убогое легаси с -20-30% к зп.
источник

IK

Illya Karmazin in var chat = new Chat();
Timur Valiev
Согласен полностью. НО первый проект в принципе на WPF без знаний каких либо паттернов не на столько уж и плохая идея я считаю)
А почему тебе просто код из метода на втором скрине не поместить в метод на 3м скрине?
источник

TV

Timur Valiev in var chat = new Chat();
Illya Karmazin
А почему тебе просто код из метода на втором скрине не поместить в метод на 3м скрине?
Хм, по сути я так и сделал только переименовав метод :D а не перенося весь код) но там есть еще методы которые используются несколько раз
источник
2021 February 04

ДМ

Дмитрий Мачихелян... in var chat = new Chat();
Почему он не находит метод?
источник

VL

Vova Lantsov in var chat = new Chat();
Дмитрий Мачихелян
Почему он не находит метод?
Для начала глянь Stacktrace где это исключение вообще возникло, явно не там где ты его поймал. Затем сделай исследование где же там этот метод вызывается. Мы тебе не поможем, не ванги же.

Вот когда найдёшь код, где его "пытаются вызвать" и вылетает ошибка, можешь вернуться и мы подскажем
источник

VL

Vova Lantsov in var chat = new Chat();
Скорее всего в IPlayerProvider вызов идёт (точнее в его реализации), но это лишь моя догадка
источник

ДМ

Дмитрий Мачихелян... in var chat = new Chat();
   at SampPlatform.Data.Dao.PlayerProvider.<Upsert>d__2.MoveNext() in e:\Programming\SampPlatform\SampPlatform.Data\Dao\PlayerProvider.cs:line 34
  at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine)
  at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine)
  at SampPlatform.Data.Dao.PlayerProvider.Upsert(PlayerAccount player)
  at AuthSystem.AccountManager.OnPlayerConnect(Player player) in e:\Programming\SampPlatform\AuthSystem\AccountManager.cs:line 24
  at SampSharp.Entities.EventService.<>c__DisplayClass11_0.<CreateInvoker>b__0(Object instance, EventContext eventContext)
  at SampSharp.Entities.EventService.Invoke(EventContext context)
  at SampSharp.Entities.SAMP.PlayerConnectMiddleware.Invoke(EventContext context, IEntityManager entityManager)
  at SampSharp.Entities.EcsBuilderUseMiddlewareExtensions.<>c__DisplayClass3_1.<UseMiddleware>b__2(EventContext context)
  at SampSharp.Entities.EventService.<>c__DisplayClass12_0.<BuildInvoke>b__0(Object[] args)
источник

ДМ

Дмитрий Мачихелян... in var chat = new Chat();
источник

NK

ID:0 in var chat = new Chat();
JetBrains подводит итоги месяца

https://blog.jetbrains.com/dotnet/2021/02/03/net-annotated-monthly-february-2021/

#JetBrains
источник

VL

Vova Lantsov in var chat = new Chat();
Дмитрий Мачихелян
Почему он не находит метод?
Хмм ну вообще похоже на внутреннюю ошибку linq2db, так-то ты вызываешь совсем другую перегрузку InsertAsync
источник

ДМ

Дмитрий Мачихелян... in var chat = new Chat();
Vova Lantsov
Хмм ну вообще похоже на внутреннюю ошибку linq2db, так-то ты вызываешь совсем другую перегрузку InsertAsync
Upsert - это кастомный метод. Вот MessageAsync он выполняет, но Upsert совсем не хочет, когда использую GetContext, он даже не заходит на Console.WriteLine()
источник

VL

Vova Lantsov in var chat = new Chat();
Дмитрий Мачихелян
Upsert - это кастомный метод. Вот MessageAsync он выполняет, но Upsert совсем не хочет, когда использую GetContext, он даже не заходит на Console.WriteLine()
Могу порекомендовать ожидать асинхронный метод - Upsert(...).GetAwaiter().GetResult();
Возможно, оно как-то прояснит ситуацию
источник

VZ

Vitaliy Zayarniy in var chat = new Chat();
Дмитрий Мачихелян
Upsert - это кастомный метод. Вот MessageAsync он выполняет, но Upsert совсем не хочет, когда использую GetContext, он даже не заходит на Console.WriteLine()
Или можешь залить на гит, я вечером склоню и посмотрю, но ничего не обещаю.
источник

VZ

Vitaliy Zayarniy in var chat = new Chat();
Просто самому ручками проще дебажить, чем просто смотреть на скрины
источник

ДМ

Дмитрий Мачихелян... in var chat = new Chat();
Vitaliy Zayarniy
Или можешь залить на гит, я вечером склоню и посмотрю, но ничего не обещаю.
Если не справлюсь, напишу!)
источник

VZ

Vitaliy Zayarniy in var chat = new Chat();
Дмитрий Мачихелян
Если не справлюсь, напишу!)
кк, если смогу помочь, то буду рад
источник

ДМ

Дмитрий Мачихелян... in var chat = new Chat();
Vova Lantsov
Могу порекомендовать ожидать асинхронный метод - Upsert(...).GetAwaiter().GetResult();
Возможно, оно как-то прояснит ситуацию
Не просняет)
источник

ДМ

Дмитрий Мачихелян... in var chat = new Chat();
Он просто не заходит в этот метод
источник

VL

Vova Lantsov in var chat = new Chat();
Дмитрий Мачихелян
Не просняет)
источник

КК

Костя К. in var chat = new Chat();
Всем привет.
Кто-нибудь может помочь с багой связаной с BackgroundService?
У меня есть hosted BackgroundService, который циклически проверяет синглтон очередь BackgroundTaskQueue (внутри которой ConcurrentQueue<Func<CancellationToken, Task>> queue) и запускает таски оттуда.
Внутри контроллеров при необходимости в очередь скидываются лямбды:
this.item1PublishBackgroundTaskQueue.QueueBackgroundWorkItem(
 async cancellationToken => { await publishItem1AppServ.Publish(item1).ConfigureAwait(false); }):

Это один пример, а в других что-то подобное:
async cancellationToken => { await publishItem1AppServ.Publish(item1).ConfigureAwait(false); }
async cancellationToken => { await publishItem2AppServ.Publish(item2).ConfigureAwait(false); }
async cancellationToken => { await publishItem3AppServ.Publish(item3).ConfigureAwait(false); }

В контроллерах publishItem..AppServ инжектяться (Transient). А в сами реализации этих сервисов могут инжектится автомаппер, и другие сервисы, которые явно инжектятся (Transient).

Падает ошибка при попытке воспользоваться кастомным ValueResolver - Cannot access a disposed object. Object name: 'IServiceProvider'. System.ObjectDisposedException.

Есть мысли что нужно обрабатывать таски из очереди внутри скоупа IServiceScopeFactory (добавленого в BackgroundService), но не могу понять а что вообще вытягивать из скоупа, если в очередь могут приходить любые сервисы.
Any ideas?)
источник