我使用此代码在Designer中制作了一个工具栏,但它没有检索到状态机(如最终状态)的所有元素。加载状态机所有元素的正确名称空间是什么?
private static ToolboxControl CreateToolboxControlshahram() {
const string @namespace = "System.Activities.Statements";
var toolbox = new ToolboxControl();
var cat = new ToolboxCategory(@namespace);
ToolboxItemWrappers(typeof(Flowchart).Assembly, @namespace).ToList().ForEach(cat.Add);
if (cat.Tools.Count > 0)
toolbox.Categories.Add(cat);
return toolbox;
}
private static IEnumerable<ToolboxItemWrapper> ToolboxItemWrappers(Assembly assembly, string @namespace) {
if (assembly == null) {
throw new ArgumentNullException("assembly");
}
if (string.IsNullOrEmpty(@namespace)) {
return Enumerable.Empty<ToolboxItemWrapper>();
}
var q = from type in assembly.GetTypes()
where string.Equals(type.Namespace, @namespace)
&& type.IsPublic && !type.IsNested && !type.IsAbstract
&& type.GetConstructor(Type.EmptyTypes) != null
orderby type.Name
select new ToolboxItemWrapper(type);
return q;
}
最终,我找到了最终状态:最终状态处于不同的程序集中,我只需要编写此代码即可将其添加到我的工具箱中
ToolboxItemWrapper(typeof ( System.Activities.Core.Presentation.FinalState))
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句