3

カスタム オブジェクトのリストを作成し、それらを SSIS オブジェクト変数に設定するスクリプト タスクがあります。

カスタムクラス:

public class Dog
{
    public string Name { get; set; }
}

List にデータを入力し、SSIS オブジェクト変数 "myDogs" に設定するコード:

public void Main()
{
    List<Dog> dogs = new List<Dog>();

    Dog dog1 = new Dog();
    dog1.Name = "Fido";

    Dog dog2 = new Dog();
    dog1.Name = "Roofus";

    dogs.Add(dog1);
    dogs.Add(dog2);

    Dts.Variables["myDogs"].Value = dogs;
}

2 番目のスクリプト タスクでは、"myDogs" オブジェクト変数を読み取ってリストに戻そうとしています。

2 番目のスクリプト タスクでコピーされたカスタム クラス:

public class Dog
{
    public string Name { get; set; }
}

2 番目のスクリプト タスクのメイン コード:

public void Main()
{
    var varDogs = Dts.Variables["myDogs"].Value;
    List<Dog> dogs = new List<Dog>();

    dogs = (List<Dog>)varDogs;
}

私の varDogs オブジェクトは、SSIS オブジェクト変数 "myDogs" からデータを正しく読み込みます。ただし、varDogs を Dog 型の List にキャストしようとすると、「System.Collections.Generic.List 型のオブジェクトをキャストできません」というエラー メッセージが表示されます。

この var データをリストにキャストする方法を知っている人はいますか? ありがとう。

4

4 に答える 4

0

[Serializable()]属性をオブジェクトに追加してみてください。

于 2018-01-31T19:51:33.853 に答える