簡體   English   中英

OutArgument中的InvalidCastException <T> 。組()

[英]InvalidCastException in OutArgument<T>.Set()

奇怪的例外,這之前工作正常。

System.InvalidCastException: Cannot convert object 'Waiting' to type 'System.Activities.Statements.Pick+PickState'.
   at System.Runtime.TypeHelper.Convert[T](Object source)
   at System.Activities.Location`1.set_ValueCore(Object value)
   at System.Activities.ActivityContext.SetValueCore[T](LocationReference locationReference, T value)
   at System.Activities.ActivityContext.SetValue[T](OutArgument`1 argument, T value)
   at System.Activities.OutArgument`1.Set(ActivityContext context, T value)
   at MyApplication.WaitForStatusChange.OnBookmarkResumed(NativeActivityContext context, Bookmark bookmark, Object value)
   at System.Activities.Runtime.BookmarkCallbackWrapper.Invoke(NativeActivityContext context, Bookmark bookmark, Object value)
   at System.Activities.Runtime.BookmarkWorkItem.Execute(ActivityExecutor executor, BookmarkManager bookmarkManager)

MyApplication.WaitForStatusChange是自定義的NativeActivity,在針對該活動的書簽上恢復工作流(帶有bookmar參數的枚舉)時,會發生錯誤。

WaitForStatusChange活動放置在Pick活動中(另一個分支上有另一個NativeActivity)

鏡頭

活動代碼

  public class WaitForPartnerIntegrationStatusChange : NativeActivity
  {
    public OutArgument<PartnerSoftwareIntegrationStatus> Status { get; set; }

    protected override void Execute(NativeActivityContext context)
    {
      context.CreateBookmark(DocumentStatusChangeWatcher.DocumentPartnerSoftwareIntegrationStatusChangedBookmark, OnBookmarkResumed);
    }


    private void OnBookmarkResumed(NativeActivityContext context, Bookmark bookmark, object value)
    {
      if (value is PartnerSoftwareIntegrationStatus)
      {
        Status.Set(context, (PartnerSoftwareIntegrationStatus)value);
      }
    }

    protected override bool CanInduceIdle
    {
      get { return true; }
    }
  }

當您更改工作流程定義並嘗試恢復持久化的工作流程時,您常常會看到這類奇怪的異常。

基本上,您無法對正在運行的工作流程進行任何更改。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM