q858652407 2015-04-19 13:12 采纳率: 0%
浏览 2106

dynamic能替代这反射吗

反射实现:
string pt="~/pt/list.ascx";
UserControl uc = (UserControl)LoadControl(pt);
Type ct = uc.GetType();

            PropertyInfo[] pInfo = ct.GetProperties();
            foreach (PropertyInfo pi in pInfo)
            {
                if (pi.DeclaringType == ct)
                {
                    string s = pi.Name;
                    object o = r[s];
                    if (o is string || o is int || o is bool)
                    {
                        ct.GetProperty(s).SetValue(uc, o, null);                        
                    }
                }
            }
            Master.Master.FindControl("body").FindControl("m").Controls.Add(uc);

dynamic实现(失败):
string pt="~/pt/list.ascx";
dynamic uc = LoadControl(pt);
uc["n"] = 10;//这里无法知道属性名为"n"

  • 写回答

2条回答 默认 最新

  • threenewbee 2015-04-19 13:15
    关注

    dynamic uc = LoadControl(pt);
    uc.n = 10;看看
    前提是要有n这个属性,并且类型是int

    评论

报告相同问题?

悬赏问题

  • ¥15 微信小程序协议怎么写
  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看