Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 带有输出参数的Dynamics CRM工作流继承_C#_Dynamics Crm - Fatal编程技术网

C# 带有输出参数的Dynamics CRM工作流继承

C# 带有输出参数的Dynamics CRM工作流继承,c#,dynamics-crm,C#,Dynamics Crm,我继承了一个CRM项目,其中有几个工作流执行非常类似的任务,基本上它们接收一个输入字符串并输出该字符串的OptionSet值。由于我们需要一个新的工作流程为每个OptionSet有很多重复的代码,我希望改善。我的方法是创建一个抽象类 公共抽象类MyBaseWorkflow:CodeActivity { 受保护的密封覆盖无效执行(CodeActivityContext executionContext) { //这是伪代码,我知道它是有效的,最后一行就是问题所在 var输入=ReadInputVa

我继承了一个CRM项目,其中有几个工作流执行非常类似的任务,基本上它们接收一个输入字符串并输出该字符串的OptionSet值。由于我们需要一个新的工作流程为每个OptionSet有很多重复的代码,我希望改善。我的方法是创建一个抽象类

公共抽象类MyBaseWorkflow:CodeActivity
{
受保护的密封覆盖无效执行(CodeActivityContext executionContext)
{
//这是伪代码,我知道它是有效的,最后一行就是问题所在
var输入=ReadInputValue();
var query=BuildQuery();
var选项=匹配输入(查询结果,输入);
WriteToOutput(…,选项);
}
受保护的字符串BuildQuery();
受保护的字符串ReadInputValue();
受保护的字符串WriteToOutput(CodeActivityContext executionContext,OptionMetadata selectedValue);
}
然后在我的工作流程中,我已经(我省略了BuildQuery和readInputValue,因为我知道它们可以很好地工作)

公共类MyWorkflow:MyBaseWorkflow { [输入(“帐户MyFieldAsText输入”)] 公共InArgument选项SetStringInput{get;set;} [输出(“帐户MyFieldOptionSetValue输出”)] [AttributeTarget(“帐户”、“myField”)] public OutArgument选项SetValueOutput{get;set;} 受保护的overide字符串WriteToOutput(CodeActivityContext executionContext,OptionMetadata selectedValue) { this.OptionSetValueOutput.Set(executionContext,新选项SetValue(selectedValue.Value.Value)); } } 我做了一些跟踪,能够看到正确的值被写入属性,但似乎没有输出到下一步

我一直在考虑这样做:
context.OutputParameters[“myField”]=selectedValue
来查看是否设置了值,但我不确定如何进行

知道哪里出了问题吗?
输出参数在继承中有任何约束吗?

在处理工作流和插件时,是否应避免将继承作为经验法则?

不要在
IPluginExecutionContext
对象中查找
OutArgument
值。OUT参数属于Windows工作流基础的域。在添加自定义活动的点下的工作流中添加操作时,可以在UI中找到它们


输出参数集合用于插件。

不要在
IPluginExecutionContext
对象中查找
OutArgument
值。OUT参数属于Windows工作流基础的域。在添加自定义活动的点下的工作流中添加操作时,可以在UI中找到它们

输出参数集合用于插件