参考SSIS脚本任务中其他类中的DTS.Variables

时间:2014-10-13 14:12:28

标签: ssis

我有一个包含脚本任务的SSIS包。它当然是通常的Script主类文件,它使用了几个Web服务,因此我也使用WSDL命令行为项目中的那些生成一些代理类。一切正常。

我定义了一些脚本任务使用的只读User ::变量,用于定义两个Web服务的URL路径。

问题:在两个Web服务代理类中,我似乎无法访问Dts变量集合。我已经尝试将using Microsoft.SqlServer.Dts.Runtime;添加到每个代理类中,但仍然无法访问代理类中的那些Dts变量。

有办法做到这一点吗?

2 个答案:

答案 0 :(得分:1)

您将无法在ScriptMain类以外的任何地方直接访问变量。在实例化它时,必须将变量传递给代理类。

// in the ScriptMain class
YourWsClass ws = new YourWsClass(Dts.Variables["User::YourVariable"].Value.ToString();

class YourWsClass
{
    public YourWsClass(String v)
    {
        _v = v;
    }
}

答案 1 :(得分:1)

我能够通过传递ScriptObjectModel将变量传递给类构造函数。

// in the ScriptMain class
YourWsClass ws = new YourWsClass(Dts);

//in the WS class
using Microsoft.SqlServer.Dts.Tasks.ScriptTask;

class YourWsClass
{
    public YourWsClass(ScriptObjectModel dts)
    {
       string _v = (string)dts.Variables["User::YourVariable"].Value;
    }
}