C#利用反射根据类名创建类的实例对象的详细介绍


当前第2页 返回上一页

2)反射功能十分强大,没有什么不能实现的。若实现“跨程序集”,请使用第一种方法创建类的实例,并反射该实例的字段、属性、方法、事件... 然后动态调用之。


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

/// <summary>

/// 反射帮助类

/// </summary>

public static class ReflectionHelper

{

  /// <summary>

  /// 创建对象实例

  /// </summary>

  /// <typeparam name="T"></typeparam>

  /// <param name="fullName">命名空间.类型名</param>

  /// <param name="assemblyName">程序集</param>

  /// <returns></returns>

  public static T CreateInstance<T>(string fullName, string assemblyName)

  {

    string path = fullName + "," + assemblyName;//命名空间.类型名,程序集

    Type o = Type.GetType(path);//加载类型

    object obj = Activator.CreateInstance(o, true);//根据类型创建实例

    return (T)obj;//类型转换并返回

  }

 

  /// <summary>

  /// 创建对象实例

  /// </summary>

  /// <typeparam name="T">要创建对象的类型</typeparam>

  /// <param name="assemblyName">类型所在程序集名称</param>

  /// <param name="nameSpace">类型所在命名空间</param>

  /// <param name="className">类型名</param>

  /// <returns></returns>

  public static T CreateInstance<T>(string assemblyName, string nameSpace, string className)

  {

    try

    {

      string fullName = nameSpace + "." + className;//命名空间.类型名

      //此为第一种写法

      object ect = Assembly.Load(assemblyName).CreateInstance(fullName);//加载程序集,创建程序集里面的 命名空间.类型名 实例

      return (T)ect;//类型转换并返回

      //下面是第二种写法

      //string path = fullName + "," + assemblyName;//命名空间.类型名,程序集

      //Type o = Type.GetType(path);//加载类型

      //object obj = Activator.CreateInstance(o, true);//根据类型创建实例

      //return (T)obj;//类型转换并返回

    }

    catch

    {

      //发生异常,返回类型的默认值

      return default(T);

    }

  }

}

以上就是C#利用反射根据类名创建类的实例对象的详细介绍的详细内容!

返回前面的内容

相关阅读 >>

分享125个基本的C#面试问答

C#devexpress gridcontrol日期行的显示格式设置详解(图文)

详解kotlin中如何实现类似java或C#中的静态方法

C#使用autoresetevent实现同步的详解及实例

详细介绍C# 中 asp.net web api 的 roc

C#学习日记04---数据类型 之 整数类型

详解C#生成随机数功能的代码示例

详解C#常用正则验证函数的示例代码

C#单位转换器的图文代码详细介绍

C# 常用函数总集

更多相关阅读请进入《C#》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...