Blazor Dependency Injection: Wie kann ich in einer Component auf die Werte der Klasse zugreifen?

1 Antwort

Vom Fragesteller als hilfreich ausgezeichnet

Dem Ausdruck fehlt ein Identifier.

@inject Daten Datenobjekt

Wenn du künftig Properties/Methoden des Daten-Objekts aufrufen möchtest, dann über den Identifier.

Dependency Injection sorgt dafür, dass dir intern eine Instanz des Typs Daten angelegt und dann Datenobjekt zugewiesen wird.

Fabian229 
Fragesteller
 30.04.2022, 19:04

Hallo,

danke für deine Antwort! Ich erhalte nun den Error cs0103. Also das bedeutet, dass Blazor die Datei nicht lädt oder, dass die Seite die Datei nicht findet oder erkennt.

Weißt du an was das liegen könnte?

0
regex9  30.04.2022, 19:39
@Fabian229

Klassische Ursachen, die mir für so etwas einfallen, wären:

  • Die nicht gefundene Datei existiert nicht / wurde nicht an den richtigen Ort kopiert.
  • Die Kompilierung / das Bauen des Projekts ist fehlgeschlagen.
  • Eine Pfadangabe ist falsch.
1
Fabian229 
Fragesteller
 01.05.2022, 23:44
@regex9

Hallo, Ursache 1: Die Datei befindet sich im Data Ordner.

Ursache 2: Der Compiler läuft einwandfrei. Habe mal protected override void OnInitialized() entfernt und die Kompilierung war erfolgreich.

Ich hab mal ein Test Projekt erstellt (Blazor Server, nicht WASM) habe eine Datei (TestData.cs erstellt) mit der Klasse Dat.

Habe nun in Program.cs: builder.Services.AddSingleton<Dat>(); gemacht.

Nun hab ich in index.razor folgendes gemacht:

@using app.Data

  @inject Dat Datenobjekt

Fehlt noch was oder was könnte die Ursache sein?

0