正好有人问这个,代码非常简单,最基本的应用,直接贴代码

(论坛答疑点滴)如何按照HashTable动态设定类的属性和字段?using System;
(论坛答疑点滴)如何按照HashTable动态设定类的属性和字段?
(论坛答疑点滴)如何按照HashTable动态设定类的属性和字段?
namespace Test
{

(论坛答疑点滴)如何按照HashTable动态设定类的属性和字段?    
/// Class1 的摘要说明。
(论坛答疑点滴)如何按照HashTable动态设定类的属性和字段?    
/// </summary>
(论坛答疑点滴)如何按照HashTable动态设定类的属性和字段?    class Class1
{

(论坛答疑点滴)如何按照HashTable动态设定类的属性和字段?        
/// 应用程序的主入口点。
(论坛答疑点滴)如何按照HashTable动态设定类的属性和字段?        
/// </summary>
(论坛答疑点滴)如何按照HashTable动态设定类的属性和字段?        [STAThread]
(论坛答疑点滴)如何按照HashTable动态设定类的属性和字段?        
static void Main(string[] args)
{
(论坛答疑点滴)如何按照HashTable动态设定类的属性和字段?            
//
(论坛答疑点滴)如何按照HashTable动态设定类的属性和字段?            
// TODO: 在此处添加代码以启动应用程序
(论坛答疑点滴)如何按照HashTable动态设定类的属性和字段?            
//
(论坛答疑点滴)如何按照HashTable动态设定类的属性和字段?
            MyFieldClass dv=new MyFieldClass();
(论坛答疑点滴)如何按照HashTable动态设定类的属性和字段?            System.Collections.Hashtable ht1
=new System.Collections.Hashtable();
(论坛答疑点滴)如何按照HashTable动态设定类的属性和字段?            ht1.Add(
"FieldA","A");
(论坛答疑点滴)如何按照HashTable动态设定类的属性和字段?            ht1.Add(
"FieldC","C");
(论坛答疑点滴)如何按照HashTable动态设定类的属性和字段?            SetField1(ht1,dv);
//如果类中的字段匹配Hashtable中的Key则重新设定
(论坛答疑点滴)如何按照HashTable动态设定类的属性和字段?            
//SetField2(ht1,dv)//如果Hashtable中的Key匹配类中的字段则重新设定,效果等同于SetField1
(论坛答疑点滴)如何按照HashTable动态设定类的属性和字段?
            Console.WriteLine(dv.FieldA);//A
(论坛答疑点滴)如何按照HashTable动态设定类的属性和字段?
            Console.WriteLine(dv.FieldB);//bb
(论坛答疑点滴)如何按照HashTable动态设定类的属性和字段?
            Console.WriteLine(dv.FieldC);//C
(论坛答疑点滴)如何按照HashTable动态设定类的属性和字段?
            System.Collections.Hashtable ht2=new System.Collections.Hashtable();
(论坛答疑点滴)如何按照HashTable动态设定类的属性和字段?            ht2.Add(
"PropertyB","b");
(论坛答疑点滴)如何按照HashTable动态设定类的属性和字段?            ht2.Add(
"PropertyC","c");
(论坛答疑点滴)如何按照HashTable动态设定类的属性和字段?            SetProperty1(ht2,dv);
//如果类中的属性匹配Hashtable中的Key则重新设定
(论坛答疑点滴)如何按照HashTable动态设定类的属性和字段?            
//SetProperty2(ht2,dv);//如果Hashtable中的Key匹配类中的属性则重新设定,效果等同于SetProperty1
(论坛答疑点滴)如何按照HashTable动态设定类的属性和字段?
            Console.WriteLine(dv.FieldA);//A
(论坛答疑点滴)如何按照HashTable动态设定类的属性和字段?
            Console.WriteLine(dv.FieldB);//b
(论坛答疑点滴)如何按照HashTable动态设定类的属性和字段?
            Console.WriteLine(dv.FieldC);//c
(论坛答疑点滴)如何按照HashTable动态设定类的属性和字段?
            
(论坛答疑点滴)如何按照HashTable动态设定类的属性和字段?        }

(论坛答疑点滴)如何按照HashTable动态设定类的属性和字段?
(论坛答疑点滴)如何按照HashTable动态设定类的属性和字段?        
public static void SetProperty1(System.Collections.Hashtable ht1,MyFieldClass dv)
{
(论坛答疑点滴)如何按照HashTable动态设定类的属性和字段?            
foreach(System.Collections.DictionaryEntry de in ht1)
{
(论坛答疑点滴)如何按照HashTable动态设定类的属性和字段?                System.Reflection.PropertyInfo pi
=dv.GetType().GetProperty(de.Key.ToString());
(论坛答疑点滴)如何按照HashTable动态设定类的属性和字段?                
if(pi!=null)pi.SetValue(dv,de.Value.ToString(),null);
(论坛答疑点滴)如何按照HashTable动态设定类的属性和字段?            }

(论坛答疑点滴)如何按照HashTable动态设定类的属性和字段?        }

(论坛答疑点滴)如何按照HashTable动态设定类的属性和字段?
(论坛答疑点滴)如何按照HashTable动态设定类的属性和字段?        
public static void SetProperty2(System.Collections.Hashtable ht1,MyFieldClass dv)
{
(论坛答疑点滴)如何按照HashTable动态设定类的属性和字段?            
foreach(System.Reflection.PropertyInfo pi in dv.GetType().GetProperties())
{
(论坛答疑点滴)如何按照HashTable动态设定类的属性和字段?                
if(ht1.Contains(pi.Name))pi.SetValue(dv,ht1[pi.Name],null);
(论坛答疑点滴)如何按照HashTable动态设定类的属性和字段?            }

(论坛答疑点滴)如何按照HashTable动态设定类的属性和字段?        }

(论坛答疑点滴)如何按照HashTable动态设定类的属性和字段?
(论坛答疑点滴)如何按照HashTable动态设定类的属性和字段?        
public static void SetField1(System.Collections.Hashtable ht2,MyFieldClass dv)
{
(论坛答疑点滴)如何按照HashTable动态设定类的属性和字段?            
foreach(System.Collections.DictionaryEntry de in ht2)
{
(论坛答疑点滴)如何按照HashTable动态设定类的属性和字段?                System.Reflection.FieldInfo fi
=dv.GetType().GetField(de.Key.ToString());
(论坛答疑点滴)如何按照HashTable动态设定类的属性和字段?                
if(fi!=null)fi.SetValue(dv,de.Value.ToString());
(论坛答疑点滴)如何按照HashTable动态设定类的属性和字段?            }

(论坛答疑点滴)如何按照HashTable动态设定类的属性和字段?        }

(论坛答疑点滴)如何按照HashTable动态设定类的属性和字段?
(论坛答疑点滴)如何按照HashTable动态设定类的属性和字段?        
public static void SetField2(System.Collections.Hashtable ht2,MyFieldClass dv)
{
(论坛答疑点滴)如何按照HashTable动态设定类的属性和字段?            
foreach(System.Reflection.FieldInfo fi in dv.GetType().GetFields())
{
(论坛答疑点滴)如何按照HashTable动态设定类的属性和字段?                
if(ht2.Contains(fi.Name))fi.SetValue(dv,ht2[fi.Name]);
(论坛答疑点滴)如何按照HashTable动态设定类的属性和字段?            }

(论坛答疑点滴)如何按照HashTable动态设定类的属性和字段?        }

(论坛答疑点滴)如何按照HashTable动态设定类的属性和字段?    }

(论坛答疑点滴)如何按照HashTable动态设定类的属性和字段?
(论坛答疑点滴)如何按照HashTable动态设定类的属性和字段?    
public class MyFieldClass
{
(论坛答疑点滴)如何按照HashTable动态设定类的属性和字段?        
public string FieldA="aa";
(论坛答疑点滴)如何按照HashTable动态设定类的属性和字段?        
public string FieldB="bb";
(论坛答疑点滴)如何按照HashTable动态设定类的属性和字段?        
public string FieldC="cc";
(论坛答疑点滴)如何按照HashTable动态设定类的属性和字段?
(论坛答疑点滴)如何按照HashTable动态设定类的属性和字段?        
public string PropertyA
{
(论坛答疑点滴)如何按照HashTable动态设定类的属性和字段?            
get
{
(论坛答疑点滴)如何按照HashTable动态设定类的属性和字段?                
return FieldA;
(论坛答疑点滴)如何按照HashTable动态设定类的属性和字段?            }

(论坛答疑点滴)如何按照HashTable动态设定类的属性和字段?            
set
{
(论坛答疑点滴)如何按照HashTable动态设定类的属性和字段?                FieldA
=value;
(论坛答疑点滴)如何按照HashTable动态设定类的属性和字段?            }

(论坛答疑点滴)如何按照HashTable动态设定类的属性和字段?        }

(论坛答疑点滴)如何按照HashTable动态设定类的属性和字段?
(论坛答疑点滴)如何按照HashTable动态设定类的属性和字段?        
public string PropertyB
{
(论坛答疑点滴)如何按照HashTable动态设定类的属性和字段?            
get
{
(论坛答疑点滴)如何按照HashTable动态设定类的属性和字段?                
return FieldB;
(论坛答疑点滴)如何按照HashTable动态设定类的属性和字段?            }

(论坛答疑点滴)如何按照HashTable动态设定类的属性和字段?            
set
{
(论坛答疑点滴)如何按照HashTable动态设定类的属性和字段?                FieldB
=value;
(论坛答疑点滴)如何按照HashTable动态设定类的属性和字段?            }

(论坛答疑点滴)如何按照HashTable动态设定类的属性和字段?        }

(论坛答疑点滴)如何按照HashTable动态设定类的属性和字段?
(论坛答疑点滴)如何按照HashTable动态设定类的属性和字段?        
public string PropertyC
{
(论坛答疑点滴)如何按照HashTable动态设定类的属性和字段?            
get
{
(论坛答疑点滴)如何按照HashTable动态设定类的属性和字段?                
return FieldC;
(论坛答疑点滴)如何按照HashTable动态设定类的属性和字段?            }

(论坛答疑点滴)如何按照HashTable动态设定类的属性和字段?            
set
{
(论坛答疑点滴)如何按照HashTable动态设定类的属性和字段?                FieldC
=value;
(论坛答疑点滴)如何按照HashTable动态设定类的属性和字段?            }

(论坛答疑点滴)如何按照HashTable动态设定类的属性和字段?        }

(论坛答疑点滴)如何按照HashTable动态设定类的属性和字段?    }

(论坛答疑点滴)如何按照HashTable动态设定类的属性和字段?
(论坛答疑点滴)如何按照HashTable动态设定类的属性和字段?}

(论坛答疑点滴)如何按照HashTable动态设定类的属性和字段?

相关文章: