Ich versuche, bestimmte Aufzählungswerte wie Unknown
und Uninitialized
aus der Menge der Werte für beliebigen Aufzählungstyp auszuschließen.Wie bestimmte Aufzählungen von allen Aufzählungstypen ausgeschlossen werden
kann ich sehen, dass Enums
in einem Round-Robin-Weise erzeugt werden für einen bestimmten Typ Enum
die EnumGenerator
aus der Menge aller möglichen Enum
Werten.
Basierend auf diesem Code, mein erster Gedanke ist es, ein ISpecimenBuilder
, die für Type.IsEnum
und macht einen context.Resolve(request)
bis Resolve
liefert einen Wert, der nicht auf der Ausschlussliste überprüft zu bauen ist.
Das Problem ist, das gibt mir einen Rekursionsfehler. Nach der Überprüfung des Quellcodes verstehe ich, warum - wenn ein Builder eine Anfrage bearbeitet und erneut eine Resolve
mit derselben Anfrage aufruft, landen Sie in einer Endlosschleife.
Aber als EnumGenerator
ist nicht erweiterbar, und ich kann nicht herausfinden, wie man die Build-Kette abzufangen Ich bin ratlos, wie man das löst.
Wäre das nicht ist es einfacher, den vorhandenen 'EnumGenerator' zu dekorieren? –
Ich rufe die 'EnumGenerator' Klasse in der' Create' Methode auf. Wenn Sie "einfacher" sagen, meinen Sie damit, die Create-Methode irgendwie zu verkleinern? –
Bitte akzeptieren Sie meine Entschuldigung; Ich habe den Code nicht gründlich genug gelesen, bevor ich diesen Kommentar geschrieben habe. –