我正在创建一个自定义工作流活动以在 TFS2010 中使用。在同一个程序集中,我有一个 XAML 活动和一个 C# 代码活动。XAML 活动引用代码活动。
当程序集部署到我们的客户时,我只希望他们能够使用 Workflow 活动。代码活动本身没有什么用,无疑会使他们感到困惑。
我认为执行此操作的合乎逻辑的方法是将代码活动类设置为内部:XAML 在同一个程序集中并且应该能够访问它。但是,当我这样做时,我在 XAML 中收到一个错误,指出在程序集中找不到该类型。
有没有办法让活动内部/隐藏?
我正在创建一个自定义工作流活动以在 TFS2010 中使用。在同一个程序集中,我有一个 XAML 活动和一个 C# 代码活动。XAML 活动引用代码活动。
当程序集部署到我们的客户时,我只希望他们能够使用 Workflow 活动。代码活动本身没有什么用,无疑会使他们感到困惑。
我认为执行此操作的合乎逻辑的方法是将代码活动类设置为内部:XAML 在同一个程序集中并且应该能够访问它。但是,当我这样做时,我在 XAML 中收到一个错误,指出在程序集中找不到该类型。
有没有办法让活动内部/隐藏?
这是所有形式的 XAML 的常见问题。这是由于解析器不在同一个程序集中的事实(在其中一条评论中提到),因此无法访问程序集的内部。
我最常看到的解决方法是将您想要的内部内容分离到它自己的名称空间中。至少你的消费者通常不会被他们不需要使用的混淆类型所困扰。在 WPF 中,此命名空间通常是附加了“.Primitives”的主命名空间。例如 System.Windows.Controls.Primitives。
您可以研究的另一种方法是使用自定义 NativeActivity 而不是 XAML。大概这可以使用内部类,因为不涉及 XAML 解析器。不过,我还没有对此进行测试。