自己写段代码生成个dll文件,再用自己的代码调用代码生成的dll
第一步,创建个类库,类库下面创建个类,在写一个方法,代码如下:
namespace myClass
{
public class ClassName
{
public string ForeachFile(string filePathByForeach)
{
var result="";
DirectoryInfo theFolder = new DirectoryInfo(filePathByForeach);
DirectoryInfo[] dirInfo = theFolder.GetDirectories();//获取所在目录的文件夹
FileInfo[] file = theFolder.GetFiles();//获取所在目录的文件
foreach (FileInfo fileItem in file) //遍历文件
{
result += "dirName:" + fileItem.DirectoryName + " fileName:" + fileItem.Name + "\n";
}
//遍历文件夹
foreach (DirectoryInfo NextFolder in dirInfo)
{
result += ForeachFile(NextFolder.FullName);
}
return result;
}
}
}
这是一个递归方法,觉得复杂也可以:
namespace myClass
{
public class ClassName
{
public string ForeachFile(string filePathByForeach)
{
var result="123";
return result;
}
}
}
第二步:右键生成dll。
第三步:添加添加myClass
第四步:调用测试代码
using System.Reflection;
Assembly assembly = Assembly.LoadFrom(@"D:\netProgram\myClass\bin\Debug\net6.0" + "/myClass.dll");
//Assembly assembly = Assembly.LoadFrom(dll);
//获取类型,参数(名称空间+类)
Type type = assembly.GetType("myClass.ClassName");
//方法的名称
System.Reflection.MethodInfo method = type.GetMethod("ForeachFile");
object instance = assembly.CreateInstance("myClass.ClassName");
string res = "";
object[] params_obj1 = new object[1];
params_obj1[0] = @"D:\2022N\模型本地资源池查找\项目文件";
var xuexiqingkuangErrorInfo = (string)method.Invoke(instance, params_obj1);
Console.WriteLine(xuexiqingkuangErrorInfo);
Console.ReadKey();