У меня есть иерархия типов неизвестной глубины.Но в и, эта иерархия реализует интерфейс IPlugin<T>
или IPlugin<T1, T2>
(из другого .dll
).Как я могу разрешить <T>
или <T1, T2>
генерики из IPlugin
?Эта общая позиция может быть случайной в верхнем классе.
Пример:
// other .dll
interface IPlugin<T> {}
interface IPlugin<T1, T2> {}
// my code
class PluginBase<T1, T2>: IPlugin<T2, T1> {}
class AnotherClass<T1, T2, T3>: PluginBase<T3, T1> {}
class Plugin: AnotherClass<string, int, char> {}
Из этого примера я ожидаю string
и char
определения типа.
Вот пример , но он использует позицию аргументов, и нет обхода иерархии.