Datenbereich (Pointer) => json
-
Hallo,
ich nutze eine Funktion " plcdevice.GetCpInfo() an die eine Referenz übergeben wird,
in die die Funtion dann Daten in einem "struct" schreibt.Die Struktur sieht so aus ...
public struct S7CpInfo { public int MaxPduLength; public int MaxConnections; public int MaxMpiRate; public int MaxBusRate; };Jetzt möchte ich die Daten lesen und in ein json wandeln.
Beim Test "Console.WriteLine(jsonString);" kommt nur "{}"S7Client.S7CpInfo CpInfo = new S7Client.S7CpInfo(); result = plcdevice.GetCpInfo(ref CpInfo); string jsonString = JsonSerializer.Serialize(CpInfo); Console.WriteLine(jsonString);Wenn ich im Debugger einen Breakpoint mache und die var "Cpinfo" ansehe, sehe ich die Daten.
Es funktioniert auch nachfolgendes ...Console.WriteLine(CpInfo.MaxBusRate);Eigentlich sollte es funktionieren ... sehe aber den Fehler nicht, warum ich das struct nicht nach json wandeln kann ?
Vielen Dank !!!
-
Hatte mal was Ähnliches, da hat sich die Serialisierung per Reflection nur Properties angeguckt, keine normalen Member.
-
Hallo,
das kann es doch nicht sein ...

Hat keiner eine Idee ... ??
-
@DocShoe hat dir doch schon das Problem dargestellt, also daß standardmäßig
JsonSerializer.Serializenur Eigenschaften (properties) serialisiert und nicht normale Member (fields).Also die Internet-Suche ergibt dann z.B. JSON-Serialisierung: Einschließen von Feldern.
Wenn du die Struktur nicht ändern kannst (S7Clienthört sich nach der Siemens-Library an), dann probierevar options = new JsonSerializerOptions { IncludeFields = true }; string jsonString = JsonSerializer.Serialize(CpInfo, options);