1

这是在尝试解决自托管设计器中的相同问题时发现的场景。创建一个包含类型的库项目。我的是这个。

namespace RaceEventLibrary
{
    public class Registration
    {
        public string Name { get; set; }
        public int Age { get; set; }
        public string EventName { get; set; }
    }
}

现在创建一个 Workflow 4.5 控制台应用程序(或服务,这似乎无关紧要)。引用库项目。在设计器上放置一个序列,然后制作一个这种库类型的 InArgument,在我的例子中是注册。一切都很好,设计师很高兴。

接下来创建另一个相同的项目,引用相同的库。现在只需从第一个项目中打开 xaml 文件。砰,它找不到类型。

System.Xaml.XamlException:“无法解析属性“registration”的类型“InArgument(r:Registration)”。

这在 xaml 中是:

    <x:Members>
        <x:Property Name="registration" Type="InArgument(r:Registration)" />
    </x:Members>

preceded by 
    xmlns:r="clr-namespace:RaceEventLibrary;assembly=RaceEventLibrary"

对于自托管设计器,我发现了这个问题的许多变体,并尝试了各种方法将库程序集加载到设计器中,但没有任何乐趣。

有关如何纠正此问题的任何建议?

4

1 回答 1

0

WF4 有自己的加载程序集的方式,这些方式并不总是与标准 .NET 框架完全相同。Ron Jacobs 对此发表了许多有趣的帖子,请参阅此处

您没有提到您如何将工作流实际加载到 WorkflowDesigner 中。有几种方法可以做到这一点。使用 ActivityXamlServices.CreateBuilderReader() 时,您可以使用XamlSchemaContext指定需要哪些程序集。那应该让您加载工作流程。

于 2012-11-04T20:25:36.377 回答