c#winform读写dll
时间: 2023-09-01 09:11:22 浏览: 120
winform 插件dll形式
3星 · 编辑精心推荐
在C# Winform中,可以使用以下代码来读写dll文件:
1. 读取dll文件
```csharp
Assembly assembly = Assembly.LoadFile("path/to/your/dll");
Type type = assembly.GetType("YourClassName");
object instance = Activator.CreateInstance(type);
```
其中,`path/to/your/dll`是你的dll文件路径,`YourClassName`是你的类名。
2. 调用dll中的方法
```csharp
MethodInfo method = type.GetMethod("YourMethodName");
object result = method.Invoke(instance, new object[] { arg1, arg2 });
```
其中,`YourMethodName`是你的方法名,`arg1`和`arg2`是你的方法参数。
3. 写入dll文件
```csharp
AssemblyDefinition assembly = AssemblyDefinition.ReadAssembly("path/to/your/dll");
ModuleDefinition module = assembly.MainModule;
TypeDefinition type = module.Types.Single(t => t.Name == "YourClassName");
MethodDefinition method = type.Methods.Single(m => m.Name == "YourMethodName");
method.Body.Instructions.Clear();
method.Body.Instructions.Add(Instruction.Create(OpCodes.Ldc_I4, 42));
method.Body.Instructions.Add(Instruction.Create(OpCodes.Ret));
assembly.Write("path/to/your/modified/dll");
```
其中,`path/to/your/dll`是你的原始dll文件路径,`YourClassName`是你的类名,`YourMethodName`是你要修改的方法名,`path/to/your/modified/dll`是你要写入的修改后的dll文件路径。
需要注意的是,写入dll文件需要使用第三方库Mono.Cecil。你可以通过NuGet安装Mono.Cecil来使用它。
阅读全文