Reflection and Generics get value of property

12,436

Solution 1

Like this:

object value = info.GetValue(item, null);

Solution 2

Here you go..

PropertyInfo[] propertyInfo = item.GetType().GetProperties(); 
var val = propertyInfo.GetValue(item, null);
Share:
12,436
GigaPr
Author by

GigaPr

In love with programmin in any shape or form!!

Updated on June 04, 2022

Comments

  • GigaPr
    GigaPr almost 2 years

    i am trying to implement a generic method which allows to output csv file

    public static void WriteToCsv<T>(List<T> list) where T : new()
        {
            const string attachment = "attachment; filename=PersonList.csv";
            HttpContext.Current.Response.Clear();
            HttpContext.Current.Response.ClearHeaders();
            HttpContext.Current.Response.ClearContent();
            HttpContext.Current.Response.AddHeader("content-disposition", attachment);
            HttpContext.Current.Response.ContentType = "text/csv";
            HttpContext.Current.Response.AddHeader("Pragma", "public");                   
    
            bool isFirstRow = true;
            foreach (T item in list)
            {                
                //Get public properties
                PropertyInfo[] propertyInfo = item.GetType().GetProperties();
    
                while (isFirstRow)
                {
                    WriteColumnName(propertyInfo);
                    isFirstRow = false;
                }
    
                Type type = typeof (T);
    
                StringBuilder stringBuilder = new StringBuilder();
    
                foreach (PropertyInfo info in propertyInfo)
                {
                       //string value ???? I am trying to get the value of the property info for the item object
    
                }                
                HttpContext.Current.Response.Write(stringBuilder.ToString());
                HttpContext.Current.Response.Write(Environment.NewLine);                
            }
            HttpContext.Current.Response.End();
        }
    

    but I am not able to get the value of the object's property

    Any suggestion?

    Thanks