Klassenobjekt als DataSource enthält Dictionary mit NULL-Wert

Hallo,

Ich habe folgendes Szenario,
ich übergebe dem ListLabel report als DataSource ein komplexes Klassenobjekt mit unter anderem Unterklassen als Properties. Diese enthalten ein Dictionary, das von ListLabel nicht serialisiert werden kann, sobald es nur einen NULL-Wert in einem String Value enthält. Es kommt sogar vor, dass dadurch die ganze Unterproperty nicht nutzbar wird.
Ist dieses Verhalten gewollt oder gibt es da bei Dictionaries ein vorgeschriebenes Verhalten, das man befolgen muss?

(ich nutze List & Label 26 Standard Edition)

Kannst du mal eine minimale Klassendefinition posten, mit der du das reproduzieren kannst? Dann sehen wir uns das gerne einmal an.

public class DataObjectClass
{
     public long DataID
     public Datetime DateTimeInsert
     public InternObject DataObjectClassIntern
     
}

public class InternObject
{
     public Dictionary<string, object> Dictionary
     {
           get
           {
                  return new Dictionary<string, object>()
                  {
                         {nameof(Value1), Value1},
                         {nameof(Value2), Value2}
                  };
           }
}

Das wäre ein ganz grobes Beispiel meines Anliegens. Es geht Hauptsächlich darum, dass es bei anderen Membern zu funktionieren scheint nur bei Dictionaries nicht, falls ein String Value NULL sein sollte.

Vielen Dank im Voraus!

1 Like

Vielen Dank. Wir werden da mal reinschauen.

Eine Zusatzfrage: wie würdest du die Daten erwarten? Hast du mal einen Screenshot davon, wie das mit deiner Struktur im Designer/Vorschau im “Erfolgsfall” (also ohne null-Wert) und im Problemfall aussieht?

Im Problemfall bekomme ich die folgenen Fehlermeldungen sobald ich versuche die Struktur des Objekts aufzuklappen:
Capture1
Capture2

Im Erfolgsfall wird mir das Dictionary auch als Ordner angezeigt und ich sehe alle Elemente, die es enthält

Vielen Dank für den Hinweis. Wir konnten das Problem nachstellen und haben in Version 29.004 einen Fix dafür vorgenommen. Wenn ein Update für dich in Frage kommt, werden dir meine KollegInnen vom Vertrieb gerne ein Angebot unterbreiten - beziehe dich dann einfach auf diesen Thread.

Einen Workaround gibt es leider nicht, ansonsten müsstet ihr das Dictionary mit einem Leerstring füllen (was aber natürlich kein null ist). Eventuell könntest du im AutoDefineField-Event den Inhalt noch auf null umbiegen.

1 Like