以下代码示例演示如何动态调用带参数和不带参数的方法:
<code class="language-csharp">// Assembly1.dll namespace TestAssembly { public class MainClass { public void Execute(string parameter) { // 执行某些操作... } public void ExecuteWithoutParameters() { // 执行某些操作... } } } // 执行程序集 ExecutingAssembly.exe public class ReflectionExample { public void InvokeMethod(string methodName) { Assembly assembly = Assembly.LoadFile("...Assembly1.dll"); // 加载程序集 Type type = assembly.GetType("TestAssembly.MainClass"); // 获取类型 if (type != null) { MethodInfo methodInfo = type.GetMethod(methodName); // 获取方法信息 if (methodInfo != null) { object result = null; ParameterInfo[] parameters = methodInfo.GetParameters(); // 获取参数信息 object instance = Activator.CreateInstance(type); // 创建实例 if (parameters.Length == 0) { result = methodInfo.Invoke(instance, null); // 调用无参数方法 } else { object[] parameterValues = new object[] { "Hello" }; // 参数值 result = methodInfo.Invoke(instance, parameterValues); // 调用带参数方法 } } } } }</code>
以上是如何在 C# 中使用反射动态调用带参数和不带参数的方法?的详细内容。更多信息请关注PHP中文网其他相关文章!