偶发现微软的WF4.0论坛也是一个学习WF4.0的好地方,打算把一些典型的问题和答案整理出来,方便大家查阅和学习,先整理几个出来,以后我会持续更新的,WF4.0论坛的地址是:http://social.msdn.microsoft.com/Forums/zh-CN/wfprerelease/threads。
1、Q:获取自定义活动的子活动:
A:实现的代码
2、Q:在宿主设计器中,通过编程的方式在Flowchar添加arguments :
A:实现的代码:
3、Q:如何将代码方式工作流转化为Xaml格式的工作流。
A:实现的代码,这个不支持lambda,先将其转换为VBRefrenceValue等:
4、Q:IActivityTemplateFactory能否用在变量上
A:可以,一个变量情况:
多个变量的情况:
5、Q:怎样在dll中找出WF的活动:
A:实现的代码
6、Q:在宿主设计器上隐藏Arguments按钮:
A:实现的代码
ShellBarItemVisibility 枚举有如下值:None, Variables ,Arguments, Imports ,Zoom ,MiniMap , All。
7、Q:宿主设计器中,如何由string来创建flowchar
A:实现的代码
wd.Load(XamlServices.Load( new StringReader(s)));
8、Q:在设计时动态添加Argument到自定义动中:
A:实现的代码:
9、Q: 自定义活动的属性设置为一个对话框
A:实现的代码
FilePickerEditor:
DataTemplate:
10、Q:ToolboxControl :Auto Expand/Collapse
A:实现的代码
{
Setters = {
new Setter(TreeViewItem.IsExpandedProperty, false )
}
};
11、Q:如何在宿主设计器上直接打开活动:
A:实现的代码:
XAML部分:
CS部分:
12、Q:WorkflowApplication加载持久化的工作流:
A:实现的代码:
application.InstanceStore = new SqlWorkflowInstanceStore(...);
application.Load(id);
application.ResumeBookmark(...);
13、Q:WF4.0活动的表达式编辑器使用的语言是什么?
A:VB
14、Q:将 xaml工作流转换成C#工作流:
A:参考:http://blogs.msdn.com/mwinkle/archive/2009/06/10/types-metatypes-and-bears-oh-my.aspx
15、Q:如何在设计器上验证当前选择和拖拽的活动
A:WF4.0验证框架包含三个辅助活动,它帮助您验证WF有关的活动。这些辅助活动是GetParentChain,GetChilSubtree和GetWorkflowTree,
他们是在Constraints里面,就像你将使用AssertValidation。下面是一个代码片段:
16、Q:如何在WF4.0表达式编辑器上使用Generic List, Hash table, Array
A:您将需要使用VB的对象和集合初始化语法
17、Q:获取Flow switch表达式字符串
A:实现代码:
18、Q:在C#中通过Default值动态创建变量。
A:如果name为:zhu ,lastname为qilin,New Class1().name + New Class1().lastName求出的值为"zhuqilin",直接看代码:
19、Q:宿主工作流设计器中验证ActivityBuilder
A:代码如下:
Activity a = ActivityXamlServices.Load( new StringReader(designer.Text)); // would return a DynamicActivity for your case
ActivityValidationServices.Validate(a);