3

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
    }
  }
}

誰か私にこれを説明できますか?では、なぜ過去 3 年間にそれが起こらなかったのでしょうか。.NET 4.0 から 4.5 に変更した後、初めて例外が発生しました。

スタックトレース:

System.Collections.Generic.List`1.Add(T item)
で MyCompany.Web.Mvc.UI.HtmlList.Add(IHtmlString 要素)
で MyCompany.Web.Mvc.Models.CaptchaExtensions.CaptchaImageElement.ToString()
で MyCompany .Web.Mvc.Models.CaptchaExtensions.CaptchaImageElement.Render(Int32 width, Int32 height)
at ASP.views_teilnahme_index_aspx.__RenderContent3(HtmlTextWriter __w, Control parameterContainer)
at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children)
at System.Web.UI.Control.RenderChildren(HtmlTextWriter ライター)
で System.Web.UI.Control.Render(HtmlTextWriter ライター)
で System.Web.UI.Control.RenderControlInternal(HtmlTextWriter ライター、ControlAdapter アダプター)
System.Web.UI.Control.RenderControl (HtmlTextWriter ライター、ControlAdapter アダプター)
で System.Web.UI.Control.RenderControl (HtmlTextWriter ライター)
で System.Web.UI.Control.RenderChildrenInternal (HtmlTextWriter ライター、ICollection の子)
でSystem.Web.UI.Control.RenderChildren(HtmlTextWriter ライター)
System.Web.UI.Control.Render(HtmlTextWriter ライター)
で System.Web.UI.Control.RenderControlInternal(HtmlTextWriter ライター、ControlAdapter アダプター)
System.Web.UI で。 System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter ライター、ICollection の子) の
System.Web.UI.Control.RenderControl(HtmlTextWriter ライター)のControl.RenderControl(HtmlTextWriter ライター、ControlAdapter アダプター)

System.Web.UI.Control.RenderChildren (HtmlTextWriter ライター)
で System.Web.UI.Page.Render (HtmlTextWriter ライター)
で System.Web.Mvc.ViewPage.Render (HtmlTextWriter ライター)
で System.Web.UI.Control .RenderControlInternal(HtmlTextWriter ライター、ControlAdapter アダプター)
で System.Web.UI.Control.RenderControl(HtmlTextWriter ライター、ControlAdapter アダプター)
で System.Web.UI.Control.RenderControl(HtmlTextWriter ライター)
で System.Web.UI.Page.ProcessRequestMain (ブール値 includeStagesBeforeAsyncPoint、ブール値 includeStagesAfterAsyncPoint)

4

1 に答える 1

0

IHtmlString が System.Web 名前空間で定義されていると想定しています。

IHtmlStringこれは、コード内の別の場所でインターフェイスを定義し、インターフェイスを使用してクラスを実装し、IHtmlStringそれをリストに追加するまで発生しないはずです

これをチェックしてください、

于 2013-03-21T12:03:41.723 に答える