How to verify c# Assembly Implements a Certain Interface?
private static void LoadPlugins(IList
{
DirectoryInfo dInfo = new DirectoryInfo(GetExtensionsDirectory());
FileInfo[] files = dInfo.GetFiles("*.dll");
if (null != files)
{
foreach (FileInfo file in files)
{
string[] fileArray = file.Name.Split('.');
if (fileArray != null)
{ // I want to verify if assembly implements a IPlugin interface before adding assemebly.
assemblies.Add(Assembly.Load(fileArray[0]));
}
}
}
}
Manas MohapatraPosted Oct 31, 2016, 7:07 AM
assemblies.Add(Assembly.Load(fileArray[0]));
var types = myAssembly.GetTypes().Where(m => m.IsClass && m.GetInterface("IPlugin") != null);
if(types == null or types.Count == 0)
{
Console.WriteLine("Found");
}
else
{
Console.WriteLine("Not Found");
}