Dobrý večer, po delší době jsem nucen napsat něco v C# a "vyhořel" jsem na následujícím problému. Potřebuji si pomocí metody ReflectionOnlyLoadFrom načíst assembly a zjistit, zda třídy, které tam jsou, implementují rozhraní IPluginInterface. Kód vypadá takto:
string[] files = Directory.GetFiles(pluginPath, "*.dll");
for (int i = 0; i < files.Length; i++)
{
Assembly asm = Assembly.ReflectionOnlyLoadFrom(files[i]);
foreach (Type t in asm.GetTypes())
{
foreach (Type t2 in t.GetInterfaces())
{
// Overeni, zda implementuje rozhrani
}
}
}
Vyhodí to výjimku při volání asm.GetTypes() - ReflectionTypeLoadException. Když z třídy, která je v načítané assembly, odstraním to, aby implementovala rozhraní, tak to nespadne. Předpokládám, že chyba bude v nějaké drobnosti, ale já ji prostě nemůžu najít. Díky za rady.
|