我有一个 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后第一次遇到异常。
堆栈跟踪:
在 System.Collections.Generic.List`1.Add(T item)处
在 MyCompany.Web.Mvc.UI.HtmlList.Add(IHtmlString element)处
在 MyCompany.Web.Mvc.Models.CaptchaExtensions.CaptchaImageElement.ToString()处
在 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 adapter)处
在 System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter)处
在 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 adapter)处
在 System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter)处
在 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 adapter)处
在 System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter)处
在 System.Web.UI.Control.RenderControl(HtmlTextWriter writer)处
在 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)处
IList<IHtmlString>
的实例。 - Daniel Hilgarth