我正在开发一个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接口调用它
答案 0 :(得分:0)
我不确定FindControlsOfType
方法是如何实现的,但是假设您需要检索那些实现ITest接口而不是所有UserControl实例的控件。