У меня есть такой общий код:
private bool DoItStartup(IReader reader, Type provider)
{
/// lots of common boiler plate code
/// like:
var abcProvider = reader.ReaderData as AbcProvider;
var xyzProvider = abcProvider.Provisions.FirstOrDefault<XyzProvider>(); // line 2
}
Вышеуказанные строки кода предназначены для примерно 50 или некоторых провайдеров, теперь Строка 2, я хочу в основном сделать это:
var xyzProvider = abcProvider.Provisions.FirstOrDefault<typeOf(provider)>();
Это не работает, возможно, потому что xyzProvider
не знает, что это тип @ время компиляции?Точно сказать не могу.Но есть ли подобный шаблон, который я могу использовать.В противном случае мне придется продублировать этот код с кодом 50 раз: (