static void Main(string[] args)
{
//定义lib路径
var libPath = Path.Combine(Environment.CurrentDirectory,"Libs");
var files = Directory.GetFiles(libPath);
//遍历dll文件
var classes = new List<Type>();
foreach (var file in files)
{
string fileExt = Path.GetExtension(file);
if (fileExt != ".dll")
continue;
var assemblys = Assembly.LoadFrom(file);
//遍历dll中的class
var types = assemblys.GetTypes();
foreach (var type in types)
{
var obj = assemblys.CreateInstance(type.FullName);
//遍历class中的属性
var props = type.GetProperties();
foreach (var prop in props)
{
if (prop.Name == "version")
prop.SetValue(obj,"V1.0",null);
}
//遍历class中的方法
var methods = type.GetMethods();
foreach (var method in methods)
{
if (method.Name == "Show")
{
Console.WriteLine("已找到目标方法\"Show()\"");
Console.WriteLine("dll路径为 {0}",file);
Console.WriteLine("类名为 {0}",type.FullName);
Console.WriteLine("运行结果 ");
method.Invoke(obj,new object[] { });
Console.WriteLine();
}
}
}
}
Console.ReadKey();
}
暂无评论