まず、私が C# を初めて使用するという免責事項。の値をwkflow_param
同じ Visual Studio ソリューションの別のプロジェクトで使用できるようにしてから、wkflow_param
その別のプロジェクトの関数に渡そうとしています。このコードに関連するインタープリターを実行して に到達すると"return wkflow_param"
、カーソルを合わせると"wkflow_param = 'conceptual_manufacturing'
(これは正しい値です。別のプログラムで設定しました) と表示されます。
2 番目のプロジェクトに切り替えてカーソルを合わせるGeneratePostProcessingScript(wkflow_param)
と、 と表示wkflow_param = 'conceptual_manufacturing'
されるので、その部分が正しいことがわかります。ただし、このポイントを通過して他のプロジェクトにwkflow_param
入ると、null として返されます-なぜ突然切り替わるのかわかりません
public partial class Interpreter
{
private string ManufacturingGeneration(MgaFCO currentobj)
{
foreach (var wf_item in tb.Children.WorkflowRefCollection)
{
string TB_child_item_name = wf_item.Name;
var workflow_item = wf_item.ReferencedBy;
foreach (var task_item in wf_item.Referred.Workflow.Children.TaskCollection)
{
string TaskName = task_item.Name;
string wkflow_param = (task_item.Attributes.Parameters).ToLower();
return wkflow_param;
}
}
}
}
他のプロジェクトの構造は次のとおりです。
public partial class Interpreter : IMgaComponentEx
{
public void InvokeEx(MgaProject project,
MgaFCO currentobj,
MgaFCOs selectedobjs,
int param)
{
GeneratePostProcessingScript(wkflow_param);
}
}
コードは何百行にも及ぶので、かなりの部分を切り取っていますが、何が問題なのかを知るために必要な情報はこれですべてだと思います。