我无法在C#中重新编写下面提到的XAML。
<Activity
xmlns:swm="clr-namespace:System.Web.Mvc;assembly=System.Web.Mvc"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
>
<x:Members>
<x:Property
Name="ViewData"
Type="InArgument(swm:ViewDataDictionary)" />
</x:Members>
<Assign>
<Assign.To>
<OutArgument x:TypeArguments="x:Object">[ViewData("Foo")]</OutArgument>
</Assign.To>
<Assign.Value>
<InArgument x:TypeArguments="x:Object">["funky foo string"]</InArgument>
</Assign.Value>
</Assign>
</Activity>
有人能说清楚这个吗?
答案 0 :(得分:0)
var dic = new Dictionary<string, object>();
dic.Add("foo", "before");
var activity = new Assign {
To = new OutArgument<object>(_ => dic["foo"]),
Value = new InArgument<object>( _ => (object)"after")
};
WorkflowInvoker.Invoke(activity);
您必须使用接受表达式的In / Out参数重载。另外,我必须明确地将“after”转换为object,否则工作流验证会抱怨不匹配的类型。