反射

本文通过一个示例展示了如何使用C#反射加载程序集、获取类型信息、列出类的所有方法,并动态创建对象及调用其方法。此外,还介绍了ClassPerson类的构造函数、属性及SayHello方法。
//控制台运行带代码  
  Console.WriteLine("列出程序集中的所有类型:");             Assembly ass = Assembly.LoadFile(@"C:\Users\liangqiang\Desktop\Test\Test1\ClassLibrary1\bin\Debug\ClassLibrary1.dll");             Type classPerson = null;             Type[] mytypes = ass.GetTypes();             foreach (Type t in mytypes)             {                 Console.WriteLine(t.Name);                 if (t.Name == "ClassPerson")                 {                     classPerson = t;                 }             }             Console.WriteLine("列出ClassPerson类中的所有方法:");             MethodInfo[] mif = classPerson.GetMethods();             foreach (MethodInfo mi in mif)             {                 Console.WriteLine(mi.Name);             }             Console.WriteLine("实例化ClassPerson,并调用SayHello方法:");             Object obj = Activator.CreateInstance(classPerson);             Object objName = Activator.CreateInstance(classPerson, "测试Name");             MethodInfo msayhello = classPerson.GetMethod("SayHello");             msayhello.Invoke(obj, null);             msayhello.Invoke(objName, null);             Console.ReadKey();

//类库
 public ClassPerson() : this(null)
        {
 
        }
        public ClassPerson(string strname)
        {
            name = strname;
        }
 
        private string name = null;
        private string sex;
        private int age;
        public string Name
        {
            set { name = value; }
            get { return name; }
        }
 
        public string Sex
        {
            set { sex = value; }
            get { return sex; }
        }
 
        public int Age 
        {
            set { age = value; }
            get { return age; }
        }
 
        public void SayHello()
        {
            if (name == null)
            {
                Console.WriteLine("Hello,World");
            }
            else
            {
                Console.WriteLine("Hello,"+name);
            }
        }

转载于:https://www.cnblogs.com/Zhengxue/p/6141475.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值