zoukankan      html  css  js  c++  java
  • c#反射机制

    例子:

    using System;
    using System.Collections.Generic; using System.Linq; using System.Text; namespace ITOO.Reflection.Student { public class Student { public string Name { get; set; } public int Age { get; set; } // 默认构造函数 public Student() { this.Age = 24; this.Name = "连江伟"; } //带参数的构造函数 public Student(string name,int age) { this.Name = name; this.Age = age; } public void Hello() { Console.WriteLine("我是"+Name +",我今年"+Age +"岁了!"); } } }

    利用反射操纵这个类 

    using System;  
    using System.Collections.Generic;  
    using System.Linq;  
    using System.Text;  
    using System.Reflection;  
      
    namespace ITOO.Reflection.Client  
    {  
        class Program  
        {  
            static void Main(string[] args)  
            {  
                //动态加载DLL,这个LoadFile最方便,参数就是dll的路径。  
                var asm = Assembly.LoadFile(@"C:UsersljwDesktop学习例子ITOO.Reflection.TestITOO.Reflection.StudentinDebugITOO.Reflection.Student.dll");  
                //获取Student类的类型  
                var type = asm.GetType("ITOO.Reflection.Student.Student");  
                //创建该类的实例  
                var instance = asm.CreateInstance("ITOO.Reflection.Student.Student");  
                //为学生类的属性赋值  
                type.GetProperty("Name").SetValue(instance, "段天涯", null);  
                type.GetProperty("Age").SetValue(instance, 18, null);  
                //获取Student类的方法  
                var method = type.GetMethod("Hello");  
                //调用Student类的成员方法Hello  
                method.Invoke(instance, null);  
                Console.Read();  
            }  
        }  
    }  
  • 相关阅读:
    uboot中setenv和saveenv分析
    DMA和通道的区别
    openwrt 切换overlay文件系统为根文件系统
    华为SDN:解决传统网络3大问题
    企业需要申请多大宽带的专线?如何节省专线费用?
    stp
    inotify文件监控
    Qt中C++与QML交互
    内核空间可以直接访问应用层空间地址
    linux 提权漏洞总结
  • 原文地址:https://www.cnblogs.com/ThatsMyTiger/p/7207125.html
Copyright © 2011-2022 走看看