嵌套类型的Workflow Foundation 4参数

时间:2013-07-31 19:29:28

标签: c# .net xaml workflow-foundation-4

我的工作流(xaml)的一个参数是在静态类中声明的嵌套类型。不幸的是,无论我搜索什么

,“浏览.NET类型”对话框都不会显示此类型

full.namespace.containingstaticlass.typeIneed

full.namespace.containingstaticlass+typeIneed

由于对话框不起作用,我尝试编辑xaml本身,但无法弄清楚如何定义

Type="InArgument(xmlnamespacetomyassembly:???)"

帮助!?

编辑:似乎工作流设计器根本不能使用嵌套类型,因为将对象强制转换为嵌套类型的表达式给了我这个错误。

enter image description here

此时,欢迎任何变通方法!

添加了显示问题的simple sample

  1. 无法添加NestedType.EssentialStruct类型的参数(在设计器中)
  2. 即使您在属性窗口中针对任何InArgument添加表达式以将Object强制转换为NestedType.EssentialStruct,设计人员也会抱怨。
  3. 还发布相关部分:

    需要在CodeActivity中使用的嵌套类型

    public static class NestedTypes
    {
        public struct EssentialStruct
        {
        }
    }
    

    使用嵌套类型作为InArgument和结果

    的简单活动
    public sealed class TestActivity : CodeActivity<NestedTypes.EssentialStruct>
    {
        public InArgument<NestedTypes.EssentialStruct> Handle
        {
            get;
            set;
        }
    
        protected override NestedTypes.EssentialStruct Execute(CodeActivityContext context)
        {
            return context.GetValue(this.Handle);
        }
    }
    

    我无法发布产生错误的XAML,因为设计师没有保存它,在保存之前就出错了。

2 个答案:

答案 0 :(得分:0)

您需要在工作流程上使用导入。这是设计师的标签。它紧挨着变量和参数。

答案 1 :(得分:0)

检查引用的程序集是否在x86(或任何CPU)中构建。我遇到了同样的问题,事实证明引用的DLL是x64,这使得Visual Studio设计者无法看到它。