c# 将通用对象转换为其真实对象

我在 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());             


  }

}  


HUWWW
浏览 186回答 2
2回答
打开App,查看更多内容
随时随地看视频慕课网APP