Я написал скрипт задачи в пакете служб SSIS.У меня есть переменная типа объекта VAR_A, и я назначил объект ClassA этой переменной VAR_A.
Например: -
ClassA classA=new ClassA();
Dts.Variables["User::VAR_A"].Value = classA; //Assigned here
Теперь у меня есть другой скрипт задачи, в котором я получаю переменную VAR_Aкак объект класса OBJECT, но теперь я хотел преобразовать этот объект в объект ClassA динамически или с помощью рефлексии.Потому что может быть несколько объектов, и я хотел напечатать все значения объектов, используя ToString (), который я переопределил во всех моих классах.
Что-то вроде ниже: -
Microsoft.SqlServer.Dts.Runtime.Application app = new Microsoft.SqlServer.Dts.Runtime.Application();
Package pkg = app.LoadPackage(@"C:\Users\Sample-SSIS-Package\\" + @"sample_Package.dtsx", null);
Variables pkgVars = pkg.Variables;
foreach (Variable pkgVar in pkgVars)
{
if (pkgVar.DataType == TypeCode.Object)
{
Object obj = pkgVar.Value;
//This below line should be dynamic, I cant use manual casting because this can be ClassA or ClassB or CLassC ..anything
ClassA ca=(ClassA)obj ;
MessageBox.Show(pkgVar.Name+ "-----"+ca.ToString());
}
}