Size: a a a

var chat = new Chat();

2021 August 12

ВО

Влад Ого in var chat = new Chat();
очевидно же
источник

E

Etki in var chat = new Chat();
Ненужные расходы - это волноваться что пара килобайт памяти выделилась и будет освобождена на ближайшем гц
источник

E

Etki in var chat = new Chat();
Но это ещё если у тебя есть срок жизни этой реализации, если у тебя это постоянные сервисы, каждый из которых регулярно вызывается, то я вообще не понимаю проблемы.
источник

Ɖ

Ɖrēw in var chat = new Chat();
class CommandHandler : ICommandHandler<SomeCommand>
{ ... }

services.AddTransient<ICommandHandler<SomeCommand>, CommandHandler>();

serviceProvider.GetRequiredService<ICommandHandler<TCommand>>();
источник

Ɖ

Ɖrēw in var chat = new Chat();
GetRequiredService в том числе может работать с Type, смысл не меняется
источник

ВО

Влад Ого in var chat = new Chat();
шоб получить CommandHandler - нужно создать инстансы всех команд и найти нужную - задача не решена
источник

Ɖ

Ɖrēw in var chat = new Chat();
wat
источник

ВО

Влад Ого in var chat = new Chat();
создав инстанс команды - я могу в ней и написать метод, который будет в хендлере
источник

Ɖ

Ɖrēw in var chat = new Chat();
Покажи место где тебе надо получить хендлер
источник

ВО

Влад Ого in var chat = new Chat();
вот есть у меня строка "/someComand"
источник

ВО

Влад Ого in var chat = new Chat();
мне с 10 команд надо найти шо это за команда
источник

н

назови меня клоуном... in var chat = new Chat();
а почему бы просто искать тип нужной команды через рефлексию и потом создавать через activator?
источник

н

назови меня клоуном... in var chat = new Chat();
зачем команды в di вообще
источник

ВО

Влад Ого in var chat = new Chat();
сейчас у меня отак
источник

Ɖ

Ɖrēw in var chat = new Chat();
Я решил эту проблему у себя введя понятия "CommandDescriptorа"
источник

Ɖ

Ɖrēw in var chat = new Chat();
Доставал IEnumerable<CommandDescriptor> из DI
источник

ВО

Влад Ого in var chat = new Chat();
где я создал все инстансы - для каждой проверил она ли - как нашел - вызвал метод
источник

Ɖ

Ɖrēw in var chat = new Chat();
Внутри этого класса лежал string описывающй комманду и ссылка на Type
источник

Ɖ

Ɖrēw in var chat = new Chat();
Делаешь их Singleton и забываешь о проблеме
источник

Ɖ

Ɖrēw in var chat = new Chat();
10 инстансов по несколько байт каждый ничего не стоят в памяти
источник