WF4.0 Beta1 變數 Variables

來源:互聯網
上載者:User

 

只有具備[Variables]屬性的Activity才可以定義變數

[Variables] 的資料類型為System.Collections.ObjectModel.Collection<System.Activities.Variable>

 

變數添加

在WF設計器中添加

 

變數存放在所在[Activity]的內部,

 

<p:Activity mc:Ignorable=""

x:Class="WorkflowConsoleApplication3.Sequence1"

xmlns="http://schemas.microsoft.com/netfx/2009/xaml/activities/design"

xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"

xmlns:p="http://schemas.microsoft.com/netfx/2009/xaml/activities"

xmlns:sad="clr-namespace:System.Activities.Debugger;assembly=System.Activities" xmlns:w="clr-namespace:WorkflowConsoleApplication3;assembly=WorkflowConsoleApplication3"

xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

<p:Sequence >

<w:myElement>

<w:myElement.Variables>

<p:Variable x:TypeArguments="x:String" Default="[&quot;i am wxd&quot;]" Name="wxd" />

</w:myElement.Variables>

</w:myElement>

</p:Activity>

 

在定義變數的[Activity]內部的[Activity]可以訪問變數,在定義變數的[Activity]外部的[Activity]無法訪問變數

 

無法通過啟動傳參方式為[變數]賦值.無法在流程完成事件中接收[變數]的值

 

定義具有[Variables]屬性的Activity

自訂Activity

public class myNative :NativeActivity

{

 

private Collection<Variable> variables;

private Variable<int> lastIndexHint;

public myNative()

{

this.variables = new WorkflowElement.DesignTimeAwareCollection<Variable>(this);

this.lastIndexHint = new Variable<int> { Modifiers = VariableModifiers.SuppressTracking };

}

 

protected override void OnGetEnvironmentVariables(IList<Variable> variables)

{

for (int i = 0; i < this.Variables.Count; i++)

{

variables.Add(this.Variables[i]);

}

}

 

protected override void OnGetPrivateVariables(IList<Variable> variables)

{

variables.Add(this.lastIndexHint);

}

 

public Collection<Variable> Variables

{

get

{

return this.variables;

}

}

 

protected override void Execute(ActivityExecutionContext context)

{

foreach (var v in variables)

{

System.Console.WriteLine("{0}:{1}",v.Name,v.Get(context));

 

}

}

}

流程

宿主

 

WorkflowInstance myInstance = new WorkflowInstance(new Sequence1());

 

myInstance.Run();

 

System.Console.Read();

結果


 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.