C#动态方法调用
时间: 2023-07-27 15:13:05 浏览: 95
在C#中,可以使用反射来实现动态方法调用。具体步骤如下:
1. 获取需要调用的方法的MethodInfo对象。可以使用Type类的GetMethod方法来获取指定名称和参数类型的方法。
2. 创建一个对象实例或者获取静态方法所在的类的Type对象。
3. 使用MethodInfo.Invoke方法来调用方法,传递需要调用的对象实例或者静态方法所在的类的对象,以及方法的参数。
以下是一个示例代码:
```csharp
using System;
using System.Reflection;
class Program
{
static void Main(string[] args)
{
// 获取方法的MethodInfo对象
MethodInfo method = typeof(Program).GetMethod("SayHello");
// 创建对象实例或获取静态方法所在的类的Type对象
object obj = new Program();
// 调用方法
method.Invoke(obj, new object[] {"World"});
}
public void SayHello(string name)
{
Console.WriteLine("Hello, " + name + "!");
}
}
```
以上代码会输出:Hello, World!
相关问题
c# 反射 动态调用方法
c是拉丁字母表的第三个字母,也是英语字母表中的一个字母。它的发音是/ˈsiː/,一般在单词中作为辅音出现。在音素方面,它表示清音/s/。c和k的发音相似,但在一些特定的情况下会用到,比如在拼写中区分拼写词根中的不同发音,如cat和cut。在一些单词中,c可以作为元音字母使用,比如托马斯·奇宁斯坦的姓氏,发音为/Tʃ/。C也可以作为罗马数字中的数字表示100。在化学元素周期表中,C代表碳元素。在计算机科学中,C是一种编程语言,被广泛用作系统级编程和开发应用程序。总的来说,C是一个常见的字母,有着多种用途和意义。
C#中动态调用DLL
在C#中,可以使用动态调用DLL的方式来调用其中的方法。一种常见的方法是将DLL文件作为资源嵌入在C#程序中,然后通过读取该资源文件并以byte\[\]返回,再使用Assembly.Load(byte\[\])方法加载DLL中的程序集。接下来,可以使用反射来调用DLL中的方法。可以使用Invoke方法来进行对DLL中方法的调用,原理类似于Form1.cs中的Invoke方法。可以使用静态变量来保存已加载的DLL,如果已加载则不再加载,如果还未加载或者需要加载的DLL与已加载的不同,则进行加载。在C#中调用托管DLL非常简单,只需要在需要调用DLL的项目中右击"引用",选择"添加引用",然后选择已列出的DLL或通过浏览来选择DLL文件,最后需要使用using导入相关的命名空间。\[1\]\[2\]\[3\]
#### 引用[.reference_title]
- *1* *2* *3* [C#程序实现动态调用DLL的研究](https://blog.csdn.net/weixin_30569153/article/details/95360330)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
阅读全文