根据给定的对象和路径,获得其子孙成员

王朝other·作者佚名  2006-01-29
窄屏简体版  字體: |||超大  

/// <summary>

/// 根据给定的对象和路径,获得其子孙成员

/// </summary>

/// <param name="pTopObject">要获得的成员是此对象的子孙,一般为Form</param>

/// <param name="pObjPath">依此路径获取,例如: TextBox1 或TextBox1.Size</param>

/// <param name="Index">用索引化属性的可选索引值返回</param>

/// <returns>子孙</returns>

public static object GetMember(object pTopObject, string pObjPath,object[] Index)

{

string[] strMember;

string MemberName="";

object obj=null;

Type objType=null;

try

{

strMember=pObjPath.Split ('.');

for (int i=0; i<strMember.Length && strMember[i]!="" ;i++)

{

if (i==0)

{

obj=(object)pTopObject;

objType=pTopObject.GetType ();

}

MemberName=strMember[i];

obj = (object) objType.InvokeMember(MemberName,

BindingFlags.Public | BindingFlags.NonPublic |BindingFlags.IgnoreCase |

BindingFlags.Instance | BindingFlags.Static| BindingFlags.GetField | BindingFlags.GetProperty , null, obj, null);

if (obj!=null) objType=obj.GetType ();

else throw new Exception ("不能根据:" + pObjPath + "获得" + pTopObject.ToString() + "的成员:" + MemberName);

}

return obj;

}

catch ( System.Exception ex ){ throw new Exception ("获取 " + pObjPath + " 的成员:" + MemberName + "时发生错误:\n" + ex.Message ); }

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航