0

我无法在 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>

任何人都可以阐明这一点吗?

4

1 回答 1

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 参数重载。此外,我必须明确地将“之后”转换为对象,否则工作流验证会抱怨类型不匹配。

于 2012-07-05T15:30:51.530 回答