无法将“ASP.masterpage mpname master”类型的对象强制转换为“Test”类型

时间:2012-10-30 04:50:39

标签: asp.net

我正在开发一个Web应用程序。我创建了一个界面ITest

public interface ITest
{
    void Add();
}

&安培;实现ITest的用户控件

 public partial class WebUserControl1 : System.Web.UI.UserControl, ITest
    {
        public void Add()
        {
            throw new NotImplementedException();
        }
    }

在我的网页上,我放置了usercontrol。但是,当我对用户控件进行类型转换以键入IType时,它会抛出异常(System.InvalidCastException)

  protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
  //          WebUserControl11.Add();
            foreach (var uCnt in this.Page.FindControlsOfType<UserControl>())
            {
                if (uCnt.Visible)
                {
                    ((ITest)uCnt).Add(); //Error : Casting Exception
                }
                else
                {
                }
            }
        }
    }

我可以直接调用Add方法但是,我想用ITest接口调用它

1 个答案:

答案 0 :(得分:0)

我不确定FindControlsOfType方法是如何实现的,但是假设您需要检索那些实现ITest接口而不是所有UserControl实例的控件。