日期:2014-05-19  浏览次数:20874 次

反射?? 遍历自定义类中全部属性
Project1.dll文件中定义了类Class_A08R  
namespace   Project1
{
      [Serializable]
public   class   Class_A08R
      {
            public   string   dEvent;
            public   string   bill_no;
      }
}


另一项目引用   Project1.dll
public   Project1.Class_A08R   Class_A08R_obj   =   new   Project1.Class_A08R();
Type   t   =   Class_A08R_obj.GetType();
ProperInfo[]   properties_A08R   =   t.GetProperties();
对象数组properties_A08R始终是0维,没数据


Assembly   theAssembly   =   Assembly.LoadFile(path1);   //path1:Project1绝对路径
Type   t   =   theAssembly.GetType( "Project1.Class_A08R ");
ProperInfo[]   properties_A08R   =   t.GetProperties();
properties_A08R始终是0维

而把自定义的类换成Dataset类,Type类   测试,是能返回多维的.怎么回事
ProperInfo[]   properties_test   =   Type.GetType( "System.type ").GetProperties();

------解决方案--------------------
属性和变量分不清?
你定义的是变量,对应的是FieldInfo
------解决方案--------------------
public string sss
{
get
{}
set
{}
}
这才是属性
------解决方案--------------------
public string bill_no;
这种东西叫 Field , 你应该用 GetFields 来返回.

这样才是Property:
pubilc string bill_no{
get{return null;}
}

------解决方案--------------------
没见 LZ 定义 Property, 只见 Field
------解决方案--------------------
上面说得对, 面向对象里常说成员变量, 属性, 方法, 构造函数, 析构函数, 分清楚, 把问题整理下, 到底想怎么做。 .net里面的发射是可以取得所有东西的。