工作流似乎是直接从Xaml创建的。那么如何在我的工作流类中包含System.Attribute?
我能想到的唯一方法就是废话:
为每个 Activity.xaml:
提供相应的代码文件[MyCustomAttribute("hello")]
public abstract class MyPointlessWorkflowBase : System.Activity
{
}
然后让我的.xaml从基地继承(我甚至不知道这是否可行)?但这很糟糕,因为我需要为需要该属性的每个工作流添加一个额外的类。
无论如何,在你将.xaml打到它之前编码活动就像它们是正常的类一样?
答案 0 :(得分:3)
XAML文件在编译之前会生成带有partial关键字的类,因此您可以创建具有相同名称的分部类并在其中添加属性。
[MyCustomAttribute("hello")]
public partial class MyWorkflow : Activity
{
}
或者,您可以使用x:ClassAttributes元素在XAML中添加属性,并以这种方式添加它们。
<p:Activity x:Class="WorkflowConsoleApplication1.MyWorkflow"
xmlns:s="clr-namespace:System;assembly=mscorlib"
xmlns:my="......"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<x:ClassAttributes>
<my:MyCustomAttribute>
<x:Arguments>
<s:String>hello</s:String>
</x:Arguments>
</my:MyCustomAttribute>
</x:ClassAttributes>
</p:Activity>