有鑑於Workflow Foundation 4的中文資訊相當少,所以我又厚臉皮來貼一篇沒啥技術份量的文章了XD
在我把 workflow 裡面邏輯拉好,code activity 都寫好,要調用(Invoke)workflow時發生了下面這個錯誤。
在我把 workflow 裡面邏輯拉好,code activity 都寫好,要調用(Invoke)workflow時發生了下面這個錯誤。
Literal only supports value types and the immutable type System.String. The type XXX cannot be used as a literal.
查了一下,原來是我要傳進去 WorkFlow 的型別是系統沒辦法自動轉換的,所以發生了這個錯誤,解決方法就是將傳入參數的方式做個改變,舉例來說:
原本一般的傳入方式是這樣
WorkflowInvoker.Invoke(new Groupon() { i_Deal = Deal, i_Coupon = Coupon, i_Order = Order } );
要改成下面這個方式才能把值傳進去
WorkflowInvoker.Invoke(new Groupon() { i_Deal = new InArgument<DealType>((env)=> Deal), i_Coupon = new InArgument<CouponType>((env) => Coupon), i_Order = new InArgument<OrderType>((env) => Order) } );
還算是蠻簡單的問題,希望遇到的人不會卡太久。
參考資料 :
Windows Workflow throws error: 'Literal
No comments:
Post a Comment