Fluent Interface für Typen-Überprüfungen?

16/07/2009 - 21:46 von Carsten Posingies | Report spam
Hallo,

ich möchte einen Typen-Prüfer implementieren, und das mit einem
"fluent interface".

Im Code soll das schließlich so aussehen können:

if (Guard.Type(MyClass).Implements.Interface(IMyInterface))
...

oder

if (Guard.Type(MyClass).Has.PublicDefaultConstructor)
...

oder

if
(Guard.Instance(myDerivedInstance).IsOfType(MyClass).Or.IsOfType(MyDerivedClass)

Habt Ihr Anregungen für mich, wie sowas geht? Lesetipps? Links?

Danke wie immer im Voraus!

Carsten
 

Lesen sie die antworten

#1 Martin Plotz
16/07/2009 - 23:59 | Warnen spam
Hallo Carsten,
ich habe noch keine fluent interfaces entworfen/implementiert, daher
kann ich dir hierzu leider keine Tipps geben. Ich frage mich aber
zumindest bei den genannten Beispielen, ob es der richtige Weg ist. C#
hat ja das ein oder andere Sprachfeature, das dir helfen könnte:

if (Guard.Type(MyClass).Implements.Interface(IMyInterface))


if (MyClass.IsSubclassOf(IMyInterface))
bzw. für eine Instanz
if (myInstance is IMyInterface)


if (Guard.Type(MyClass).Has.PublicDefaultConstructor)


Hier wüsste ich keinen direkten Weg, aber vielleicht wàre eine Extension
Method für System.Type interessant?
das könnte dann
if (typeof(MyClass).HasPublicDefaultConstructor))
heißen.

oder

if
(Guard.Instance(myDerivedInstance).IsOfType(MyClass).Or.IsOfType(MyDerivedClass)


warum nicht
if ((myDerivedInstance.GetType()==typeof(MyClass)) || (...))
?

Grüße,
Martin

Ähnliche fragen