|
Di generic
|
|||
---|---|---|---|
#18+
что то подтупливаю уже или может ошибся. вообщем прошу консультации. есть интрефейс Код: c# 1. 2. 3. 4. 5. 6. 7.
есть парочка реализаций Код: c# 1. 2. 3. 4. 5. 6. 7. 8.
регаю как бы просто Код: c# 1. 2.
но мне не нравиться использование по месту так как мне приходиться делать такое Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
можно ли как то по типу объект его процессор через Di красиво процесить. или какие варики есть чтоб не писать явный свитч и n инъекций в конструкторе ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2021, 15:31 |
|
Di generic
|
|||
---|---|---|---|
#18+
Без отступов глаза ломаются вообще. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2021, 16:04 |
|
Di generic
|
|||
---|---|---|---|
#18+
handmadeFromRu можно ли как то по типу объект его процессор через Di красиво процесить. или какие варики есть чтоб не писать явный свитч и n инъекций в конструкторе Сделай фэктори: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2021, 20:01 |
|
Di generic
|
|||
---|---|---|---|
#18+
handmadeFromRu, если хочешь динамически выбирать обработчик через рефлексию, я код позже скину, быстрй ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2021, 20:04 |
|
Di generic
|
|||
---|---|---|---|
#18+
только суть Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
ну вот как-то так по-хорошему можно закешировать полученные типы, но и так сойдёт ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2021, 20:15 |
|
Di generic
|
|||
---|---|---|---|
#18+
hVostt благодарю. попробую. с факторой блин я тупо не подумал что могу ж IServiceProvider засунуть и оттуда разрулить все..и ведь просто. а начал в стиле думать как бы типо фитчи в dryioc <key,inservcie<>> подтащить ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2021, 22:23 |
|
Di generic
|
|||
---|---|---|---|
#18+
handmadeFromRu а начал в стиле думать как бы типо фитчи в dryioc <key,inservcie<>> подтащить Да ну.. такое себе решение, громоздкое и непрозрачное. Но зато не надо писать новых типов. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2021, 22:39 |
|
Di generic
|
|||
---|---|---|---|
#18+
hVostt да рефлекшн мой варик.. факторка тоже не зашла...у меня в channel объекты разнородные но от общего родителя и под каждого свой процессор т.е. динамически. спасибо буду раскуривать рефлекшен тут слабоват просто ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2021, 22:56 |
|
Di generic
|
|||
---|---|---|---|
#18+
Ты только не смейся, но почему бы, как готовое решение, не посмотреть MediatR ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2021, 11:33 |
|
Di generic
|
|||
---|---|---|---|
#18+
fkthat, Технически можно медиатР. Но это архитектурное решение, его польза раскрывается, когда либа является частью архитектуры приложения. Опять же, есть и плюсы, есть и минусы — как говорится, не все так однозначно. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2021, 14:24 |
|
Di generic
|
|||
---|---|---|---|
#18+
fkthat Ты только не смейся, но почему бы, как готовое решение, не посмотреть MediatR я думал о медиатор но подумал ради 1 места целую библу чет борща ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2021, 18:41 |
|
Di generic
|
|||
---|---|---|---|
#18+
handmadeFromRu fkthat Ты только не смейся, но почему бы, как готовое решение, не посмотреть MediatR я думал о медиатор но подумал ради 1 места целую библу чет борща У меня в общем-то в сарае где-то завалялась готовая подобная тема, если отыщу, то скину позже на гитхаб. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2021, 19:31 |
|
Di generic
|
|||
---|---|---|---|
#18+
fkthat У меня в общем-то в сарае где-то завалялась готовая подобная тема, если отыщу, то скину позже на гитхаб. Дык медиатр тоже в исходниках, берёшь и без зазрения совести тыришь че надо себе в проект ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2021, 20:52 |
|
Di generic
|
|||
---|---|---|---|
#18+
поробуйте такую фитчу - регистратор Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
целевой бы конструктор выглядел так Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
ну и сам вызов Код: c# 1. 2. 3. 4.
ну может типы дженериков поплывут, я ведь в слепую, ну принцип думаю ясен. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2021, 19:06 |
|
Di generic
|
|||
---|---|---|---|
#18+
handmadeFromRu, Я тут на гитхаб творчество выложил, можешь вот здесь посмотреть как сделано: https://github.com/fkthat/MediatorLite ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2021, 19:45 |
|
Di generic
|
|||
---|---|---|---|
#18+
fkthat, а нафига Task HandleMessageAsync(object message); ? привет из прошлого ) хендлеры надо регать через какой-то конфигуратор -- не тру, олд вей, не флексибел хендлеры железно синглтоны ( диспетчер строится на экспрешонах -- хорошо это дело не кешируется -- плохо, вся прелесть слита в утиль и де тесты, Билли )) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2021, 01:19 |
|
Di generic
|
|||
---|---|---|---|
#18+
hVostt а нафига Task HandleMessageAsync(object message); ? привет из прошлого ) Что-то вот это вообще не понял. hVostt хендлеры надо регать через какой-то конфигуратор -- не тру, олд вей, не флексибел хендлеры железно синглтоны ( Да можно было бы конвенциально регать рефлекшеном. Не заморачивался просто. И никаких синглетонов там нет. Как зарегаешь, так и будет. hVostt диспетчер строится на экспрешонах -- хорошо это дело не кешируется -- плохо, вся прелесть слита в утиль Кешируется. Смотри внимательней. Там все експрешены строятся в статическом конструкторе ровно один раз. hVostt и де тесты, Билли )) Ты смотрел хоть? Там 100% покрытия. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2021, 03:55 |
|
Di generic
|
|||
---|---|---|---|
#18+
hVostt, С експрешенами там эта штука на самом деле вспомогательная просто для удобства. Обработчик может обрабатывать несколько разных типов сообщений, но приходят они в него как object. А эта шляпа просто перенаправляет его в нужный метод. А так-то ничего не мешает все это кастомно делать при желании. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2021, 05:39 |
|
Di generic
|
|||
---|---|---|---|
#18+
hVostt, Ты знаешь, я сейчас подумал, что можно эту схему с разруливанием от object к типизированному перенести в сам медиатор и тогда от нетепизированных обработчиков вообще избавиться. Надо будет вечерком сделать :) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2021, 07:45 |
|
Di generic
|
|||
---|---|---|---|
#18+
fkthat, оо поизучаю сорсы для развития ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2021, 21:15 |
|
Di generic
|
|||
---|---|---|---|
#18+
fkthat hVostt а нафига Task HandleMessageAsync(object message); ? привет из прошлого ) Что-то вот это вообще не понял. Ну ты требуешь реализовать два метода у хендлера, один от T, другой принимает Object. fkthat hVostt хендлеры надо регать через какой-то конфигуратор -- не тру, олд вей, не флексибел хендлеры железно синглтоны ( Да можно было бы конвенциально регать рефлекшеном. Не заморачивался просто. И никаких синглетонов там нет. Как зарегаешь, так и будет. Да, точно, увидел. Но ты требуешь регать хендлер в двух местах. В DI, потом через конфигуратор. Зачем? Если хендлер есть в DI, этого должно быть достаточно. без сканирования сборок и регистрации через конфигуратор -- совершенно лишний шаг. fkthat Кешируется. Смотри внимательней. Там все експрешены строятся в статическом конструкторе ровно один раз. Дело было вечером, смотрел наискосок сорян ) Но опять же, строится это в конфигураторе, он должен о всех хендлерах знать сразу, что как бы не найс. fkthat Ты смотрел хоть? Там 100% покрытия. посыпаю голову пеплом... ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2021, 22:05 |
|
Di generic
|
|||
---|---|---|---|
#18+
fkthat и тогда от нетепизированных обработчиков вообще избавиться Так я и говорю, это устаревший подход лепить к тепизированному интерфейсу нетипизированный. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2021, 22:06 |
|
Di generic
|
|||
---|---|---|---|
#18+
fkthat, Кстати думал о том, будет ли твой медиатор работать в скоупе (например контроллеры), и без скоупа (например, в фоновых сервисах, IHostedService)? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2021, 22:16 |
|
Di generic
|
|||
---|---|---|---|
#18+
hVostt fkthat, Кстати думал о том, будет ли твой медиатор работать в скоупе (например контроллеры), и без скоупа (например, в фоновых сервисах, IHostedService)? Будет, конечно. Там же никакой магии - все просто через IServiceProvider создается. Как зарегаешь так и будет создаваться. От нетипизированного я избавился. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2021, 22:22 |
|
Di generic
|
|||
---|---|---|---|
#18+
fkthat hVostt fkthat, Кстати думал о том, будет ли твой медиатор работать в скоупе (например контроллеры), и без скоупа (например, в фоновых сервисах, IHostedService)? Будет, конечно. Там же никакой магии - все просто через IServiceProvider создается. Как зарегаешь так и будет создаваться. От нетипизированного я избавился. Да, у тебя медиатор transient.. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.04.2021, 23:11 |
|
|
start [/forum/topic.php?fid=18&msg=40062873&tid=1354542]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
26ms |
get topic data: |
8ms |
get forum data: |
3ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
others: | 11ms |
total: | 125ms |
0 / 0 |