首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何将参数传递给通过Assembly.CreateInstance加载的C#插件?

要将参数传递给通过Assembly.CreateInstance加载的C#插件,您可以在插件类中定义一个接收参数的构造函数。以下是一个简单的示例:

  1. 首先,在插件项目中创建一个类,并定义一个接收参数的构造函数:
代码语言:csharp
复制
public class MyPlugin
{
    private string _parameter;

    public MyPlugin(string parameter)
    {
        _parameter = parameter;
    }

    public void DoSomething()
    {
        // 使用_parameter进行操作
    }
}
  1. 编译插件项目,将生成的DLL文件放在主程序的目录中。
  2. 在主程序中,使用Assembly.CreateInstance加载插件DLL,并使用Activator.CreateInstance创建插件类的实例,并传递参数:
代码语言:csharp
复制
using System;
using System.Reflection;

public class Program
{
    public static void Main()
    {
        string pluginPath = "path/to/plugin.dll";
        string parameter = "Hello, Plugin!";

        Assembly assembly = Assembly.LoadFrom(pluginPath);
        Type pluginType = assembly.GetType("MyPlugin");

        object pluginInstance = Activator.CreateInstance(pluginType, parameter);
        MethodInfo methodInfo = pluginType.GetMethod("DoSomething");

        methodInfo.Invoke(pluginInstance, null);
    }
}

这样,插件类的实例就会使用传递的参数进行初始化。在这个例子中,插件类的DoSomething方法可以访问_parameter变量,并根据需要进行操作。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券