首页 新闻 搜索 专区 学院

一串MemoryStream输出到List<Person>问题

0
悬赏园豆:20 [已解决问题] 解决于 2014-12-05 09:38

我的MemoryStream中有这些内容~~~

现在想传到List<Person>里面~~~~我代码是这样写的

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Reflection;

namespace 用户自定义输入
{
    public class DeSerializerHelper
    {
        public static void DeSerializa<T>(List<T> list, MemoryStream ms,T obj)
        {
            ms.Seek(0, SeekOrigin.Begin);
            BinaryReader br = new BinaryReader(ms);
            PropertyInfo[] fields = typeof(T).GetProperties();
            for (int i = 0; i <= 8; i++)
            {
                    foreach (PropertyInfo field in fields)
                    {
                        if (field.Name == br.ReadString())
                        {
                            if (field.PropertyType.FullName == "System.Int64")
                              field.SetValue(obj, Int64.Parse(br.ReadString()), null);
                            else
                              field.SetValue(obj, br.ReadString(), null);
                            }                                          
                        }
                    }
                list.Add(obj);
            }
        }  
    }
}

可是存到list里面是这个样子的,希望有感觉都输出了最后一个person~~~希望有高手能指点一二,万分感谢~~~

Freedom0619的主页 Freedom0619 | 初学一级 | 园豆:10
提问于:2014-12-05 07:58
< >
分享
最佳答案
0

上次还没结贴呢

 

肯定这样了,你传的obj,大家都共用一个内存地址,你要在循环里面创建

收获园豆:20
Yu | 专家六级 |园豆:12980 | 2014-12-05 09:19

@Freedom0619: 

   for (int i = 0; i <= 8; i++)
                        {
                                T obj = Activator.CreateInstance<T>();
...
}
Yu | 园豆:12980 (专家六级) | 2014-12-05 09:34
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册