C# WF 4中的模型项
我在WF4.0项目中工作。这是我自己定制活动的一部分:C# WF 4中的模型项,c#,visual-studio-2010,workflow-foundation,workflow-foundation-4,C#,Visual Studio 2010,Workflow Foundation,Workflow Foundation 4,我在WF4.0项目中工作。这是我自己定制活动的一部分: public Activity Create(DependencyObject target) { var sequenceModelItem = (target as WorkflowViewElement).ModelItem; sequenceModelItem .Properties["Variables"] .Collection
public Activity Create(DependencyObject target)
{
var sequenceModelItem = (target as WorkflowViewElement).ModelItem;
sequenceModelItem
.Properties["Variables"]
.Collection
.Add(new Variable<List<string>>("Provider", provider));
sequenceModelItem
.Properties["Variables"]
.Collection
.Add(new Variable<string>("ProviderSearch"));
return new Sequence
{
Activities =
{
// Some activities...
}
};
}
公共活动创建(DependencyObject目标)
{
var sequenceModelItem=(目标为WorkflowViewElement);
sequenceModelItem
.Properties[“变量”]
收集
.添加(新变量(“提供者”,提供者));
sequenceModelItem
.Properties[“变量”]
收集
.Add(新变量(“ProviderSearch”);
返回新序列
{
活动=
{
//一些活动。。。
}
};
}
这就是问题所在。在provider中,我在数据库中有一些提供程序的列表 .Add(new Variable<List<string>>("Provider", provider));
.Add(新变量(“Provider”,Provider));
但我不知道该怎么解决它
谢谢 您是否需要将该行更改为:
.Add(new Variable<Dictionary<string, object>>( { "Provider", provider }));
.Add(新变量({“Provider”,Provider}));
根据Ron Jacobs的研究,新变量似乎正在尝试将列表转换为文本,而对于引用类型(List),该文本将失败。文章指出,如果要使用引用类型,必须使用字典。可以使用lambda进行实例化
new Variable<List<string>>("Provider", context => provider)
new变量(“Provider”,context=>Provider)
但我不确定这是否是您希望在活动模板工厂的Create方法中执行的操作。此方法将在设计时从设计器中调用,但提供者肯定是一个运行时问题。您不应该在运行时使用一些东西去获取提供者吗?对于将来的引用,
我尝试将查询结果保存在构造函数的活动方法的列表中。稍后,在create方法中,我创建了一个与Provider名称相同的类型(List)变量,并复制Provider中以前的List Provider。您的活动实际上看起来像一个活动模板。在活动模板中,只能提供工作流部分的结构,而不能提供实际代码。为此,您需要实现一个CodeActivity/AsyncCodeActivity/NativeActivity,它将从数据库中获取字符串列表。我可以在同一个类中执行SimpleActivity:NativeActivity,IActivityTemplateFactory吗?Hi ShelbyZ。当我这样做时,会出现执行时间错误。处理表达式“(集合)”时遇到编译器错误。'未声明集合的ins。由于其保护级别,可能无法访问