我正在尝试在设计时读取包变量。我可以很容易地在运行期间做到这一点:
IDTSVariables variables = null;
pipelineComponent.VariableDispenser.LockForRead("MyVariable");
pipelineComponent.VariableDispenser.GetVariables(out variables);
但是在设计时,我没有PipelineComponent,我找不到任何会给我一个VariableDispenser的对象。
我查看了IDtsVariableService类,但它似乎只提供了一个帮助UI来促进新变量的创建 - 我想读取一个现有变量。
答案 0 :(得分:4)
原来我很接近,它是IDtsPipelineEnvironmentService类:
Variables vars = null;
IDtsPipelineEnvironmentService pipelineService = (IDtsPipelineEnvironmentService)serviceProvider_.GetService(typeof(IDtsPipelineEnvironmentService));
pipelineService.PipelineTaskHost.VariableDispenser.LockForRead("VARIABLE_NAME");
pipelineService.PipelineTaskHost.VariableDispenser.GetVariables(ref vars);
VARIABLE = vars[0].Value.ToString();
vars.Unlock();
答案 1 :(得分:1)
以下链接可能会对您有所帮助。