Следующее основано только на моем собственном опыте, поэтому я могу ошибаться ...
В объектах, не подверженных бритве, работает только инъекция в конструктор. Таким образом, вы не можете определить свойство, аннотированное атрибутом Inject, и ожидать, что оно будет заполнено экземпляром данного объекта. Вместо этого используйте инъекцию конструктора.
Однако с объектами Razor вы можете использовать директиву @inject для внедрения сервисов в компоненты Razor, но вы также можете использовать атрибут Inject со свойствами в определении класса компонентов бритвы (.razor.cs) и в @ блоки кода (.razor).
Надеюсь, это поможет ...