SSIS自定义组件:在设计时访问变量

时间:2011-06-09 13:39:39

标签: ssis

我正在尝试在设计时读取包变量。我可以很容易地在运行期间做到这一点:

IDTSVariables variables = null;
pipelineComponent.VariableDispenser.LockForRead("MyVariable");
pipelineComponent.VariableDispenser.GetVariables(out variables);

但是在设计时,我没有PipelineComponent,我找不到任何会给我一个VariableDispenser的对象。

我查看了IDtsVariableService类,但它似乎只提供了一个帮助UI来促进新变量的创建 - 我想读取一个现有变量。

2 个答案:

答案 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)

以下链接可能会对您有所帮助。