zoukankan      html  css  js  c++  java
  • c# 利用反射获取属性名和值

    class A
    {
     public string Property1{get;set;}
     public int Property2{get;set;}
    }

    class B
    {
     public string Property1{get;set;}
     public A Property2{get;set;}
    }

    请问如何通过反射获取class B 的Property2属性(也就是class A)的 属性名和值?

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    using System.Reflection;
    namespace WindowsApplication26
    {
        public partial class Form1 : Form
        {
     
            class A
            {
                public string Property1 { get return "Property1"; } }
                public int Property2 { get return 1; } }
            }
     
            class B
            {
                private A property2=new A();
                public string Property1 { get return "Property1"; } }
                public A Property2 { get return property2; } }
            
     
     
            public Form1()
            {
                InitializeComponent();
            }
     
            private void Form1_Load(object sender, EventArgs e)
            {
     
                B b = new B();
     
                
                foreach (PropertyInfo info in b.GetType().GetProperty("Property2").GetValue(b, null).GetType().GetProperties()) 
                {
                    MessageBox.Show(string.Format("{0}={1}",info.Name,info.GetValue(b.Property2,null)));
                }
                 
     
            }
        }
    }
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    using System.Reflection;
    namespace WindowsApplication26
    {
        public partial class Form1 : Form
        {
     
            class A
            {
                public string Property1 { get return "Property1"; } }
                public int Property2 { get return 1; } }
            }
     
            class B
            {
                private A property2=new A();
                public string Property1 { get return "Property1"; } }
                public A Property2 { get return property2; } }
            
     
     
            public Form1()
            {
                InitializeComponent();
            }
     
            private void Form1_Load(object sender, EventArgs e)
            {
     
                B b = new B();
     
                
                foreach (PropertyInfo info in b.GetType().GetProperty("Property2").GetValue(b, null).GetType().GetProperties()) 
                {
                    MessageBox.Show(string.Format("{0}={1}",info.Name,info.GetValue(b.Property2,null)));
                }
                 
     
            }
        }
    }
  • 相关阅读:
    Sublime Text 3 破解 + 注册 + 汉化 + 教程 + 快捷键大全 + 中文乱码 +编译JAVA
    cocos2dx 翻牌效果
    php中将SimpleXMLElement Object转化为普通数组
    VS2013+lua5.3.1 环境配置
    Jquery相册 fancybox-1.3.4
    JS~字符串长度判断,超出进行自动截取(支持中文)
    JS /jquery 时间戳与日期转换
    php验证身份证号码正确性
    JS身份证验证
    逆向编程一,PE结构拉伸内存
  • 原文地址:https://www.cnblogs.com/caigen029/p/3442158.html
Copyright © 2011-2022 走看看