ich bin auf euch gestoßen und sehe eine hohe Aktivität in eurer Community und hoffe natürlich auch etwas beisteuern zu können.
Seit längerem programmiere ich Anbindungen an ein ERP-System und kam bisher immer alleine gut klar.
Eine App auf Basis von WinForms existiert bereits und diese bin ich gerade dabei umzuschreiben.
Meine Zielplattform ist .MAUI und Blazor.
Zum starten habe ich eine einfache .MAUI App generiert um zu sehen ob mein Connector und meine Models funktionieren, dies ist der Fall und macht keine Probleme.
Da ich die App jedoch auch in einer Webanwendung bereit stellen möchte, ist der nächste Weg also .MAUI mit Blazor.
Viel Text von mir, nun mein Problem.
"Dereferenzierung eines möglichen Null-Wertes" innerhalb meiner Blazor Umgebung.
Die Basis ist ein Model und ein Service, in meinem Fall "AnschriftService".
Ich schicke XML Daten an einen Connector, der dies auf der Seite meines ERP Systems dann verarbeitet.
Wie man im Code sieht, schließe ich für den ConnectorClient mit "?" bereits die null Prüfung aus.
Jetzt hänge ich aber am XML Element das NULL enthalten darf und auch ggf. zurückgibt.
Jedoch kriege ich hier den passenden Syntax nicht raus.
public class MAnschrift
{
public string Na1 { get; set; }
public string Na2 { get; set; }
}
// Es müssen noch Textfelder übergeben werden in die Funktion
public List<MAnschrift> GetAnschriften()
{
// XmlDocument für Parameter erstellen
XmlDocument XmlRequest = new XmlDocument();
XmlRequest.LoadXml("<Root/>");
// AdrNr
var node = XmlRequest.CreateElement("AdrNr");
node.InnerText = "";
XmlRequest.DocumentElement.AppendChild(node);
// Connector initialisieren, Standard NULL
ConnectorClient? client = null;
client = new ConnectorClient();
// Xml Übergabe ausführen
XmlElement XmlResponse = client.ExecuteComplete(GlobalConnectorConfig.serverURL, GlobalConnectorConfig.connectorScriptFileName, GlobalConnectorConfig.connectorScript, XmlRequest.DocumentElement, 30);
/*
XmlElement el = (XmlElement)response.SelectSingleNode("Error");
if (el != null)
el.ParentNode.RemoveChild(el);
*/
XmlNodeList idNodes = XmlResponse.SelectNodes("Anschrift");
List<MAnschrift> anschriftListe = new List<MAnschrift>();
foreach (XmlNode node1 in idNodes)
{
anschriftListe.Add(new MAnschrift()
{
Na1 = node1.SelectSingleNode("Na1").InnerText,
Na2 = node1.SelectSingleNode("Na2").InnerText,
});
}
return anschriftListe;
}
Sowohl XmlRequest.DocumentElement.AppendChild(node); wird hier mit "Dereferenzierung eines möglichen Null Verweises" deklariert als auch viele andere Elemente dieses Codes.
Ebenso wird Na1 und Na2 im Model (eigene C# Klasse) angemerkt.
Könnte ich im Model mit "string?" umgehen, im XMLElement aber nicht.
Frage 1)
Kann mir jemand verständlich machen wieso die Blazor Umgebung die null-Werte anmeckert die .MAUI Umgebung jedoch nicht?
Frage 2)
Hat jemand möglichen Lösungsansatz gegen dieses Problem?