1

SharePoint 2007 でカスタム Web パーツの共有プロパティを編集しようとすると、次のエラーが表示されます。

Exception has been thrown by the target of an invocation.
  at System.RuntimeMethodHandle._InvokeMethodFast(Object target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner)
  at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks)
  at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
  at Microsoft.SharePoint.WebPartPages.ExtendedPropertyInfo.GetValue(Object target, Object[] indexValues)
  at Microsoft.SharePoint.WebPartPages.PropertySheetProperty.get_Value()
  at Microsoft.SharePoint.WebPartPages.PropertySheetProperty.get_IsNull()
  at Microsoft.SharePoint.WebPartPages.PropertySheetProperty..ctor(WebPart targetWebPart, SPWebPartManager webPartManager, PropertyInfo pi)
  at Microsoft.SharePoint.WebPartPages.PropertySheetProperties.GetProperties(WebPart targetWebPart, SPWebPartManager manager, Boolean inPersonalizationMode, IPropertySheetPropertiesFilter filter)
  at Microsoft.SharePoint.WebPartPages.CustomPropertyToolPart.CreatePropertyGrid()
  at Microsoft.SharePoint.WebPartPages.CustomPropertyToolPart.CreateChildControls()
  at System.Web.UI.Control.EnsureChildControls()
  at System.Web.UI.Control.PreRenderRecursiveInternal()
  at System.Web.UI.Control.PreRenderRecursiveInternal()
  at System.Web.UI.Control.PreRenderRecursiveInternal()
  at System.Web.UI.Control.PreRenderRecursiveInternal()
  at System.Web.UI.Control.PreRenderRecursiveInternal()
  at System.Web.UI.Control.PreRenderRecursiveInternal()
  at System.Web.UI.Control.PreRenderRecursiveInternal()
  at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

Web パーツにいくつかのカスタム プロパティがあり、フォームによって生成される通知電子メールの電子メール アドレスを設定します。これの例は次のとおりです。

    [WebBrowsable(true),
    Personalizable(true),
    DefaultValue("myemail@company.com"),
    Category("Email Properties"),
    Microsoft.SharePoint.WebPartPages.WebPartStorage(Microsoft.SharePoint.WebPartPages.Storage.Shared),
    Microsoft.SharePoint.WebPartPages.FriendlyName("Email Addresses (separate multiple emails with a comma):"),
    Description("Please enter the email addresses for those that should be notified when an incident takes place at a Corporate location.")]
    public string CorpMessageEmailAddresses { get; set; }

ただし、これらのプロパティをコメントアウトしても、Web パーツを変更しようとするとエラーが発生します。

他の誰かがこのような問題に対処したことがありますか? 必要に応じて、詳細情報やコード スニペットを提供できます。

4

1 に答える 1

1

わかりました、昨夜遅くにこれを理解しました...これは、例外内に隠された典型的な MS 例外でした。表示された例外は原因ではなく、最後に発生した例外です。本当の例外は、ViewState 変数に関係する問題でした。get と set の周りに try/catch を配置したところ、すべてがうまく機能するようになりました。

kbrimingtonさん、今朝まであなたのコメントを見ていませんでした...助けてくれてありがとう!

于 2010-07-30T17:22:05.140 に答える