我正在尝试完成一些看起来应该非常简单的事情。我有一个状态机工作流控制台应用程序,其中包含一个工作流。我为它创建了一个自定义活动。此活动将永远不会在其他任何地方使用。我只想在我的工作流程中使用此活动,但是:
- 它不会出现在工具箱中。
- 我无法将它从解决方案资源管理器拖到工作流设计器上。
我绝对不想创建一个单独的状态机工作流活动库,因为那只会让我的解决方案变得混乱。就像我说的,我永远不会在任何其他项目中使用这个活动,所以我想把它限制在这个活动中……但我就是不知道如何把它交给设计师!我要疯了吗!?
这是活动的代码:
public partial class GameSearchActivity: Activity
{
public GameSearchActivity()
{
InitializeComponent();
}
public static DependencyProperty QueryProperty = System.Workflow.ComponentModel.DependencyProperty.Register("Query", typeof(string), typeof(GameSearchActivity));
[Description("Query")]
[Category("Dependency Properties")]
[Browsable(true)]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]
public string Query
{
get
{
return ((string)(base.GetValue(GameSearchActivity.QueryProperty)));
}
set
{
base.SetValue(GameSearchActivity.QueryProperty, value);
}
}
public static DependencyProperty ResultsProperty = System.Workflow.ComponentModel.DependencyProperty.Register("Results", typeof(string), typeof(GameSearchActivity));
[Description("Results")]
[Category("Dependency Properties")]
[Browsable(true)]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]
public IEnumerable<Game_GamePlatform> Results
{
get
{
return ((IEnumerable<Game_GamePlatform>)(base.GetValue(GameSearchActivity.ResultsProperty)));
}
set
{
base.SetValue(GameSearchActivity.ResultsProperty, value);
}
}
protected override ActivityExecutionStatus Execute(ActivityExecutionContext executionContext)
{
IDataService ds = executionContext.GetService<IDataService>();
Results = ds.SearchGames(Query);
return ActivityExecutionStatus.Closed;
}
}
谢谢。
编辑:
好的,所以我发现如果我将项目类型从控制台应用程序更改为类库,自定义活动就会出现在工具箱中。然而,这是不可接受的。它需要是控制台/Windows 应用程序。
有人知道解决这个问题的方法吗?