0

我的工作流 (xaml) 的参数之一是在静态类中声明的嵌套类型。不幸的是,无论我搜索什么,“浏览 .NET 类型”对话框都不会显示这种类型

full.namespace.containingstaticlass.typeIneed

或者

full.namespace.containingstaticlass+typeIneed

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

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

帮助!?

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

在此处输入图像描述

在这一点上,任何解决方法都将受到欢迎!

添加了一个显示问题的简单示例。

  1. 无法添加 NestedType.EssentialStruct 类型的参数(在设计器中)
  2. 即使您针对任何 InArgument 在属性窗口中添加将 Object 强制转换为 NestedType.EssentialStruct 的表达式,设计者也会抱怨。

还发布相关部分:

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,因为设计者没有保存它,在保存它之前就出错了。

4

2 回答 2

0

您需要在工作流程上使用导入。它是设计器中的一个选项卡。它在变量和参数旁边。

于 2013-07-31T19:39:26.847 回答
0

检查引用的程序集是否内置于 x86(或任何 CPU)中。我遇到了同样的问题,结果发现引用的 DLL 是 x64,因此 Visual Studio 设计人员看不到它。

于 2014-11-24T17:08:15.813 回答