步骤2—修改Main()来加载SayHello.xaml文件
之前我们的工作流是被编译成一个类的。如果我们要直接从.xaml文件调用工作流,我们必须用ActivityXamlServices 把.xaml文件读进内存并建立一个让WorkflowInvoker可以调用的活动实例。要记住任何我们的.xaml文件引用的程序集在工作流被调用时一定要存在并能使用。
1.把下列命名空间加入program.cs或Module1.vs文件
Visual Basic
Imports System.Activities.XamlIntegratio
2.修改program.cs或Module1.vb去调用ActivityXamlServices,并添加Console.ReadKey的调用,这样能更容易的观察我们的程序在Windows Explorer中的运行。
(代码段- Introduction to WF4 Lab - ActivityXamlServices CSharp)
{
WorkflowInvoker.Invoke(ActivityXamlServices.Load("SayHello.xaml"));
Console.ReadKey(false);
}
(Code Snippet - Introduction to WF4 Lab - ActivityXamlServices VB)
Visual Basic
Shared Sub Main()
WorkflowInvoker.Invoke(ActivityXamlServices.Load("SayHello.xaml"))
Console.ReadKey(False)
End Sub
验证
在这次验证过程中,你会先运行HelloWorld程序,然后修改在bin\Debug文件夹下已经部署了的SayHello.xaml文件, 之后我们来看新的文字是否出现在控制台里。
1.按CTRL+F5在非调试模式下运行工作流。你的程序应该在控制台里运行,而且输出“Hello Workflow 4”.
2.在Bin\Debug目录下找到SayHello.xaml
Locate the SayHello.xaml file in the project’s Bin\Debug directory
3. 按SayHello.xaml右键菜单,选择Edit在Notepad中打开文件。
Right click and select Edit
4. 在Notepad中把WriteLine活动的Text属性的值改为“Hello Workflow 4 XAML”, 保存并关闭文件。
Change the Text property in Notepad
5. 从Windows Explorer运行HelloWorkflow.exe。 现在它应该显示”Hello Workflow4 from XAML”. 随便按个键退出。
HelloWorkflow.exe showing a new message from the .xaml file
6.回到Visual Studio, 把之前在SayHello.xaml上改过的设置恢复成初始状态, 这样可以进行之后的练习
·Build Action: XamlAppDef
·Copy to Output Directory: Do not copy
·Custom Tool: MSBuild:Compile
Restore SayHello.xaml to the default properties for .xaml files
注意!
在Visual Studio 2010 Beta 2 里有可能找不到XamlAppDef Build Action。 如果你遇到这种情况,右键击中HelloWorkflow 项目,选择Add/New Item, 然后选Workflow/Activity来添加Activity.xaml. 之后XamlAppDef Build Action 就会出现了。
在Solution Explorer里,选中SayHello.xaml并把它的build action 设为XamlAppDef. 之后你可以从项目中删掉Activity.xaml.