Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
23.07.2020, 21:32
|
|||
---|---|---|---|
Blazor [Inject] работает по-разному в коде компонента и в коде бизнесс-класса. Почему? |
|||
#18+
Привет. Blazor [Inject] работает по-разному в коде компонента и в коде бизнесс-класса. Почему? Честно говоря, понятно почему. Не доделано. DI подключается и создает инстансы только во время рендерения компонента (компонент здесь и далее просто .razor класс). Раз мой бизнес класс не рендерится, то не жди и инжекта при обьявлении типа Код: c# 1. 2.
Вопрос: как заставить Блэзор инжектировать в мой бизнес класс Код: c# 1. 2. 3. 4.
Что я делаю сейчас, инжектирую тот же DALClass в компонент (можно. Компонент рендерится), а потом начинаю его пропагировать по моим бизнесс классам типа Код: c# 1.
Чот не то. ПОшло. Как это сделать получше? Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
23.07.2020, 22:13
|
|||
---|---|---|---|
Blazor [Inject] работает по-разному в коде компонента и в коде бизнесс-класса. Почему? |
|||
#18+
А зачем ты в в обычном классе используешь [Inject]? Он как бы совсем не для этого. Он вообще ни для чего. Если тебе надо заинжектить сервис в обычный класс - используй обычный constructor injection, если в разоровский компонент, то используй стандартную директиву @inject. А этот аттрибут он, по сути, для внутреннего использования - компилятор разора метит им свойства которые объявлены через @inject. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
23.07.2020, 22:36
|
|||
---|---|---|---|
Blazor [Inject] работает по-разному в коде компонента и в коде бизнесс-класса. Почему? |
|||
#18+
fkthat, >используй обычный constructor injection Я не знаком с техникой этого дела. Мой код в .razor @code { MyClass m = new MyClass(); } И вот в MyClass надо передать DALClass из DI контейнера (он там скоупед и создавать новый инстанс мне не надо) Если я обьявляю параметризованный конструктор типа public class MyClass { public MyClass(DALClass dal) { } } то MyClass m = new MyClass(); в разоре не прокатит. Значит я должен в разоре иметь инстанс DALClass и передавать его в конструктор. Но я хочу, чтоб DI инжектировал DALClass Scope, а не его куда-там провайдил. Иначе возникает каскад таких передач в другие классы ... |
|||
:
Нравится:
Не нравится:
|
|||
|
23.07.2020, 22:37
|
|||
---|---|---|---|
|
|||
Blazor [Inject] работает по-разному в коде компонента и в коде бизнесс-класса. Почему? |
|||
#18+
Renziglov Код: c# 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
23.07.2020, 22:48
|
|||
---|---|---|---|
Blazor [Inject] работает по-разному в коде компонента и в коде бизнесс-класса. Почему? |
|||
#18+
Renziglov, тебе в разоре надо написать вверху Код: c# 1.
а в классе MyClass объявить конструктор Код: c# 1. 2. 3. 4. 5. 6.
И, конечно, все это зарегистрировать в DI-контейнере на старте приложения: Код: c# 1. 2.
А еще, если ты используешь DI, то лучше сразу отделять интерфейсы от реализации и инжектить интерфейсы, а не классы. Код: c# 1.
Код: c# 1. 2. 3. 4. 5. 6.
Код: c# 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
23.07.2020, 23:02
|
|||
---|---|---|---|
Blazor [Inject] работает по-разному в коде компонента и в коде бизнесс-класса. Почему? |
|||
#18+
Shocker.Pro, Не-не. Пробовал и паблик. Та же фигня. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
23.07.2020, 23:10
|
|||
---|---|---|---|
|
|||
Blazor [Inject] работает по-разному в коде компонента и в коде бизнесс-класса. Почему? |
|||
#18+
Тут нифига непонятно, что у тебя из этого всего компонент, короче сделай как показал fkthat Renziglov Раз мой бизнес класс не рендерится, то не жди и инжекта при обьявлении типа Ты должен свой бизнес-класс извлекать из DI. Забудь про new ... |
|||
:
Нравится:
Не нравится:
|
|||
|
24.07.2020, 00:23
|
|||
---|---|---|---|
|
|||
Blazor [Inject] работает по-разному в коде компонента и в коде бизнесс-класса. Почему? |
|||
#18+
И еще, кстати, момент https://ru.wikipedia.org/wiki/DTO Data Transfer Object (DTO) — один из шаблонов проектирования, используется для передачи данных между подсистемами приложения. Data Transfer Object, в отличие от business object или data access object не должен содержать какого-либо поведения . ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=18&tablet=1&tid=1354658]: |
0ms |
get settings: |
7ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
27ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 128ms |
0 / 0 |