neuer Vorschlag

ich habe jetzt die Abhängigkeiten von F# und Fsharpx entfernt und benutze das klassiche TryXYZ (wie TryParse) Muster - ist weniger lesbar aber denke für dich wohl besser nachzuvollziehen.

Außerdem werden jetzt die Eigenschafts(bzw. Feldleser) in einem Dictionary gecached (allerdings ohne Thread-Syncronisierung - ist das nötig sollte man einen lock rumlegen) damit nicht bei jeder Abfrage einer Id eines schon bekannten Typs wieder Reflection benutzt werden muss (das ist "teuer") - sollte eigentlich ein wenig Performance bringen, falls Du viele Daten abarbeiten musst.