C# 从cs中设置不一致值 我在一个工作流基础项目中工作,我发现了一个问题。我解释我的项目:
我有一个主窗口,在其中设置要运行的workflowname。运行此工作流时,我调用VisualTracking.cs类以查看调试的位置。此cs类构造函数具有以下方法(WorkflowDesigner wd、字符串文件路径、字符串名称) 名称是我在主窗口中设置的workflownameC# 从cs中设置不一致值 我在一个工作流基础项目中工作,我发现了一个问题。我解释我的项目:,c#,visual-studio-2010,workflow-foundation-4,C#,Visual Studio 2010,Workflow Foundation 4,我有一个主窗口,在其中设置要运行的workflowname。运行此工作流时,我调用VisualTracking.cs类以查看调试的位置。此cs类构造函数具有以下方法(WorkflowDesigner wd、字符串文件路径、字符串名称) 名称是我在主窗口中设置的workflowname 我有一个带有一些自定义活动的dll项目,这些活动是我在以前重新托管的工作流中使用的。在其中一个活动中,我有一个不确定的问题,那就是调用textValue。我希望此InArgument获得workflowname值,
......
VisualTracking tracker = new VisualTracking(wd, workflowFilePathName, this.workflowName);
.....
可视化跟踪类:
.......
private string workflowName { get; set; }
.......
public VisualTracking(WorkflowDesigner wd,string filePath,string name) {
.......
foreach (Activity v in idActivityMap.Values)
{
string val = v.GetType().FullName;
activityLists.Add(val);
if (v.GetType().FullName == "RulesDll.Status_Activity.StatusActivity")
{
((StatusActivity)v).textValue = this.workflowName;
}
}
........
在这个foreach中,我检查每个工作流活动的名称空间是否是我要设置workflowname的目标活动
状态活动
........
public InArgument<string> textValue;
public InArgument<string> Text
{
get { return this.textValue; }
set { this.textValue = value; }
}
........
protected override void Execute(CodeActivityContext context)
{
...........
string text = context.GetValue(this.Text);
...........
。。。。。。。。
公共不公平价值观;
公开非公开文本
{
获取{返回this.textValue;}
设置{this.textValue=value;}
}
........
受保护的覆盖无效执行(CodeActivityContext上下文)
{
...........
string text=context.GetValue(this.text);
...........
所以我希望字符串文本中有我在visualtracking类中关联的workflowName值…但是当我调试时,总是检索一个空值
>在VisualTraceTracle类中,<代码> > WorkFrutOns<代码>设置时,任何解决方案都会被赏识,
< p> >在我看来,当您从主窗口创建实例时,您正在传递所需的值,但实际上从未设置它。来自MainWnidow的ameter。我建议您替换以下代码行:if (v.GetType().FullName == "RulesDll.Status_Activity.StatusActivity")
{
((StatusActivity)v).textValue = this.workflowName;
}
有了这些:
// This will also catch cases where your class inherits
// from StatusActivity.
StatusActivity activity = v as StatusActivity;
// Using 'as' cast will return null if the type cannot be
// cast to a StatusActivity.
if (activity != null)
{
// You passed in a reference to MainWindow's "this.workflowName"
// in the name parameter of this constructor.
activity.textValue = name;
}
很抱歉,我忘记将此.workflowName=name;放在visualTracking类中;-),但仍然不起作用