System.Reflection.PropertyInfo pi = tt.GetType().GetProperty("myattrib", typeof(string));
if (pi != null)
{
    string mystr = pi.GetValue(tt, null).ToString();
}

解决方案 »

  1.   

    呵呵,面向对象的基本问题。你可以为网站添加一个接口,例如写:    public Interface IMyAttrib
       {
           string myattrib;
       }然后让你的用户控件继承它。主程序中的代码就是:         IMyattrib tt = PlaceHolder1.FindControl("mykj"); 
            if(tt!=null)
            {
                 string result=tt.myattrib ;
    ..............
      

  2.   

    你必须转换是他自己的类型 Control类型是他的父类,他当然没有myattrib这个属性一般有3种解决方法
    1.转换成自己的类型
    2.使用反射,直接赋值
    3.使用接口
      

  3.   

    我的项目中就定义了一个 IFindControl 接口
      

  4.   

    IMyattrib tt = PlaceHolder1.FindControl("mykj");    应该写为:IMyattrib tt = PlaceHolder1.FindControl("mykj") as IMyattrib; 
      

  5.   

    支持3楼
    觉得也可以userctrol的id,url等信息放到一个数据表里面,然后调用加载
      

  6.   

    vs有一个重构功能,在class内部点鼠标右键->重构->提取接口。我很喜欢它具有这个功能。