我在 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());
}
}
相关分类