使用反射时遇到的问题
protected void FillDataReaderToT<T>(ref T tableStruct, SqlDataReader thisReader)
         {
             //FieldInfo[] fieldInfos = typeof(T).GetFields();
             thisReader.Read();
             for (int i = 0; i < thisReader.FieldCount ; i++)
             {
                 FieldInfo fieldInfo = tableStruct.GetType().GetField(thisReader.GetName(i).ToLower());
                 if(fieldInfo!=null)
                     fieldInfo.SetValue(tableStruct, thisReader.GetValue(i));
             }                          
         }
T tableStruct:是传入的一个struct,已经初始化。
为什么在执行fieldInfo.SetValue(tableStruct, thisReader.GetValue(i));
时,tableStruct始终不能获得值
------解决方案--------------------protected void FillDataReaderToT<T>(ref T tableStruct, SqlDataReader thisReader)
       {
           //加这行 把它先box 起来
           object obj = (object)tableStruct;
           thisReader.Read();
           for (int i = 0; i < thisReader.FieldCount; i++)
           {
               FieldInfo fieldInfo = tableStruct.GetType().GetField(thisReader.GetName(i));
               if (fieldInfo != null)
               {
                   object val = thisReader.GetValue(i);
                   //用obj 来set value
                   fieldInfo.SetValue(obj, val);
               }
           }
           //加这行把obj unbox
           tableStruct = (T)obj;
       }