C# 反射

1、反射获取程序集的三种方式

  • Assembly.Load();//这种方式只需提供程序集的名称
  • Assembly.LoadFile(path);//这种方式需要提供程序集完整的路径
  • Assembly.LoadFrom("Lys.dll");//需要程序集名称及其后缀名。

2、获取类型

  • Assembly.GetTypes()://获取所有类型
  • assembly.GetType("命名空间.类名"); //获取指定类型

3、GetType

1 Type type = assembly.GetType("Lys.UIteamanLys");
2 PropertyInfo[] props = type.GetProperties();
3 FieldInfo[] fields = type.GetFields();
4 MethodInfo[] methods = type.GetMethods();

4、Assembly自带的CreateInstance()

  • 自带的Createinstance实例化对象时需要指明命名空间和类名
1 object o = assembly.CreateInstance("Lys.UIteamanLys");
2 dynamic d = assembly.CreateInstance("Lys.UIteamanLys");

------------恢复内容开始------------

1、反射获取程序集的三种方式

  • Assembly.Load();//这种方式只需提供程序集的名称
  • Assembly.LoadFile(path);//这种方式需要提供程序集完整的路径
  • Assembly.LoadFrom("Lys.dll");//需要程序集名称及其后缀名。

2、获取类型

  • Assembly.GetTypes()://获取所有类型
  • assembly.GetType("命名空间.类名"); //获取指定类型

3、GetType

1 Type type = assembly.GetType("Lys.UIteamanLys");
2 PropertyInfo[] props = type.GetProperties();
3 FieldInfo[] fields = type.GetFields();
4 MethodInfo[] methods = type.GetMethods();

4、Assembly自带的CreateInstance()

  • 自带的Createinstance实例化对象时需要指明命名空间和类名
1 object o = assembly.CreateInstance("Lys.UIteamanLys");
2 dynamic d = assembly.CreateInstance("Lys.UIteamanLys");

5、多态的使用

1 IUltraman lys = (Iultraman)assembly.CreatInstance("Lys.UItramanLys");
2 lys.Name = "迪迦";
3 string res = lys.Attack():

6、配置文件的使用

1 <appSettings>
2     <add key="ultraman" value="Lys.UltramanLys | Lys.dll">
3     //<add key="ultraman" value="Lys.UltramanLys | Lys.dll">
4 </appSettings>

 至此,所有的配置都安装完毕啦,如果你觉得有用,点个赞吧!

如果您看了本篇博客,觉得对您有所收获,请点击右下角的 [推荐];

如果您想转载本博客,请注明出处;

如果您对本文有意见或者建议,欢迎留言;

感谢您的阅读,请关注我的后续博客。

posted @ 2021-12-13 22:58  愿余生随风  阅读(100)  评论(0编辑  收藏  举报