以下程式碼範例示範如何動態呼叫帶參數和不帶參數的方法:
<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中文網其他相關文章!