当前位置:编程学习 > C#/ASP.NET >>

利用反射读取实体对象的泛型集合IList<T>对象T的值

有一个model层的类包含IList<T>泛型对象,用反射去读T的值,怎样处理?见如下实例:

    [Serializable]
    public class Sdf_Sample
    {
        #region[成员变量]
       private string name;
private List<Sdf_User_Info> sdf_User_Info;        #endregion
        
        #region[属性] 
        ///<summary>
        ///名称
        ///</summary>
        public string Name
        {
           get { return name; }
           set { name = value; }
        }

        /// <summary>
        ///从表对象集合
        /// </summary>
        [FieldTag(IsChildren = true)]
        public virtual IList<Sdf_User_Info> Sdf_User_Info
        {
            get
            {
                if (sdf_User_Info == null)
                    sdf_User_Info = new List<Sdf_User_Info>();

                return sdf_User_Info;
            }
            set
            {
                sdf_User_Info = new List<Sdf_User_Info>(value);
            }
        }        /// <summary>

   }

//test
public class test
{
     private  void GetInsertSql(T model)        {
     PropertyInfo[] pis = typeof(T).GetProperties();
     foreach (PropertyInfo pi in pis)
     {
        object obj = pi.GetValue(model, null);//======>IList<T>对象
         Type ty;
//============求IList<T>中泛型类型============
        Type[] typeArguments = obj.GetType().GetGenericArguments();
        if (typeArguments.Length > 0)
        {
            ty = typeArguments[0];  
            IList<ty> list = (IList<ty>)obj;
//==这里转换报错,ty找不到类型,怎办?   
         } 
      }
} --------------------编程问答-------------------- http://www.cnblogs.com/ninputer/articles/415458.html


不要轻易滥用反射。注意要使用接口进行程序设计,而不是反射!
补充:.NET技术 ,  .NET技术前瞻
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,