Я использую ssdt против 2017 и хотел бы присвоить результат метода переменной в задаче сценария, используя C#. Я пытаюсь сделать это вне основного метода. Я могу прочитать значения переменных SSIS в основном методе, используя переменные dts, но не имея доступа к нему вне основного метода.
public partial class ScriptMain : Microsoft.SqlServer.Dts.Tasks.ScriptTask.VSTARTScriptObjectModelBase
{
public void Main()
{
//Do something
}
private class DifferentClass
{
private Microsoft.SqlServer.Dts.Runtime.Variables DtsVariables;
public string MakeURL()
{
return DtsVariables["User::URLBase"].Value.ToString() + "/default.aspx"; // how to assign this value to the below variable
}
string urlbase = MakeURL(); //Return results of MakeURL() to the string urlbase
}
}
Чтобы лучше объяснить мою проблему, если бы я обращался к переменным dts вне main () метод, который я получаю сообщение об ошибке: ссылка на объект требуется для нестатического c поля, метода или свойства 'VSTARTScriptObjectModelBase.Dts'.
public void Main()
{
string test = Dts.Variables["User::TestString"].Value.ToString(); //This works
}
private class Test
{
string newtest = Dts.Variables["User::TestString"].Value.ToString(); //Error: An object reference is required for the non-static field, method, or property 'VSTARTScriptObjectModelBase.Dts'
}