C# 反射的实例代码
时间: 2023-11-22 11:36:07 浏览: 94
C#反射实例
5星 · 资源好评率100%
C#反射是一种强大的编程技术,它允许我们在运行时检查程序集、模块和类型,并动态地创建实例、调用方法、访问字段和属性等。下面是一个示例代码,展示了如何使用C#反射来加载和使用DLL。
```csharp
using System;
using System.Reflection;
namespace ReflectionExample
{
public interface IPlugin
{
void Run();
}
public class PluginA : IPlugin
{
public void Run()
{
Console.WriteLine("PluginA is running.");
}
}
public class PluginB : IPlugin
{
public void Run()
{
Console.WriteLine("PluginB is running.");
}
}
class Program
{
static void Main(string[] args)
{
// 动态加载DLL并获取类型
string dllPath = "path/to/your/plugin.dll";
Assembly assembly = Assembly.LoadFile(dllPath);
Type pluginType = assembly.GetType("Namespace.PluginA");
// 创建实例并调用方法
IPlugin plugin = (IPlugin)Activator.CreateInstance(pluginType);
plugin.Run();
}
}
}
```
上述代码中,我们定义了一个接口`IPlugin`,并在DLL中实现了两个类`PluginA`和`PluginB`来实现该接口。在`Main`方法中,我们使用`Assembly.LoadFile`方法动态加载了DLL,并使用`assembly.GetType`方法获取了`PluginA`的类型。然后,我们使用`Activator.CreateInstance`方法创建了`PluginA`的实例,并通过调用其`Run`方法来运行插件的功能。
需要注意的是,上述示例仅仅展示了C#反射的基本用法,实际应用中可能会更加复杂。在实际使用中,你需要替换`"path/to/your/plugin.dll"`为你实际的DLL路径,以及`"Namespace.PluginA"`为你实际的类型名称。
阅读全文