1

我正在开发一个网络应用程序。我创建了一个接口 ITest

public interface ITest
{
    void Add();
}

& 一个实现 ITest 的用户控件

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

在我的网页上,我放置了用户控件。但是,当我将用户控件类型转换为 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 接口调用它

4

1 回答 1

0

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

于 2012-10-30T05:32:09.593 回答