is there any possibility to have a generic List<System.Type>
and to have a constraint on the type?
I want to store types in a list for a lookup, but only types where the class of this type implements a specific interface.
Something like this:
List<Type> : where typeof(Type) is IMyClass
Is that possible? If not do you have any suggestion on how to solve this issue?
Any help appreciated !
EDIT:
Sorry I haven't been clearer on the subject, but Sign's comment below is correct, I don't have instances available, just types.
Assume the following:
class PluginA : IPlugin { }
class PluginB : IPlugin { }
class PluginC : ISomeOtherInterface { }
var pluginTypes = new List<Type>()
pluginTypes.Add(typeof(PluginA) --> OK
pluginTypes.Add(typeof(PluginB) --> OK
pluginTypes.Add(typeof(PluginC) --> should fail
Yes I could wrap this, but hoped that there would be a better variant which checks during compiletime or hints with intellisense what types are allowed.
You can try using generics like this: