我有IList<IHtmlString>
我要添加一些元素。由于时间很短,它会抛出ArrayTypeMismatchException
,但我不知道为什么。从HttpSessionStateBase添加或访问元素时也会发生这种情况。
public class HtmlList
{
private IList<IHtmlString> _listItems = new List<IHtmlString>();
public void Add(IHtmlString listItem)
{
if (listItem != null)
{
_listItems.Add(listItem); // here ArrayTypeMismatchException is thrown
}
}
}
有人可以向我解释一下吗?为什么在过去的三年里没有发生?从.NET 4.0更改为4.5后,我第一次遇到异常。
堆栈追踪:
at System.Collections.Generic.List`1.Add(T item)
在MyCompany.Web.Mvc.UI.HtmlList.Add(IHtmlString元素)
at MyCompany.Web.Mvc.Models.CaptchaExtensions.CaptchaImageElement.ToString()
at MyCompany.Web.Mvc.Models.CaptchaExtensions.CaptchaImageElement.Render(Int32 width,Int32 height)
在ASP.views_teilnahme_index_aspx .__ RenderContent3(HtmlTextWriter __w,Control parameterContainer)
在System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer,ICollection children)
在System.Web.UI.Control.RenderChildren(HtmlTextWriter writer)
在System.Web.UI.Control.Render(HtmlTextWriter writer)
在System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer,ControlAdapter适配器)
在System.Web.UI.Control.RenderControl(HtmlTextWriter writer,ControlAdapter适配器)
在System.Web.UI.Control.RenderControl(HtmlTextWriter writer)
在System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer,ICollection children)
在System.Web.UI.Control.RenderChildren(HtmlTextWriter writer)
在System.Web.UI.Control.Render(HtmlTextWriter writer)
在System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer,ControlAdapter适配器)
在System.Web.UI.Control.RenderControl(HtmlTextWriter writer,ControlAdapter适配器)
在System.Web.UI.Control.RenderControl(HtmlTextWriter writer)
在System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer,ICollection children)
在System.Web.UI.Control.RenderChildren(HtmlTextWriter writer)
在System.Web.UI.Page.Render(HtmlTextWriter writer)
在System.Web.Mvc.ViewPage.Render(HtmlTextWriter writer)
在System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer,ControlAdapter适配器)
在System.Web.UI.Control.RenderControl(HtmlTextWriter writer,ControlAdapter适配器)
在System.Web.UI.Control.RenderControl(HtmlTextWriter writer)
在System.Web.UI.Page.ProcessRequestMain(布尔includeStagesBeforeAsyncPoint,布尔includeStagesAfterAsyncPoint)
答案 0 :(得分:0)
我假设IHtmlString是在System.Web命名空间中定义的。
除非您在代码中的其他位置定义了IHtmlString
接口,并且您正在使用IHtmlString
接口实现一个类并将其添加到列表
请检查一下,