As a part of writing of a code generation tool (client library for my classes), I found an interesting problem.
I have a set of classes: SomeClass : MyBaseClass<SomeClass>
SomeOtherClass : SomeOtherBaseClass
ClassC : SomeCompletelyOtherBaseClass<SomeClass>
All of MyBaseClass<T>
, SomeOtherBaseClass
and SomeCompletelyOtherBaseClass<T>
inherit from the same base class, but I'm not interested in that one.
Also as the input for my code, I have a Reflected Type (System.Type
).
What I want to find out is for my Reflected Type - which one of these generic base classes it inherits.
I know it's possible to use the IS operator, or IsAssignableFrom
, but in this case I don't know what the generic type is.
So I can't just say myType.IsAssignableFrom(MyBaseClass<T>)
, as I don't know about the T
, all I have is MyBaseClass
name.
What I want to get out of this is - be able to use it in a switch/case statement, saying that for all classes inheriting from MyBaseClass do this, for all inheriting from SomeCompletelyOtherBaseClass do that.
Any ideas?
I will however need to identify that the T
is later down the line, so any additional input welcome.
Aucun commentaire:
Enregistrer un commentaire