2016-04-19 13 views
0

私はちょっと変わった問題があります。 C#スクリプトSSIS私はダイナミックデータに基づいてリストを構築する必要性を開発しました。C#動的リストクラス

背景

はそれを説明するには、スクリプトタスクは、変数APIのURLを持っている解雇され、これは消灯し、バックJSON文字列を引くし、次を使用して、強く型付けされたリストにそれをスローしますコード。

var listobject = get_APIData<ApplicationOneDataSet>(url) 

これを実行するクラスは、この問題の背景では長年にわたり、実際には必要ではありません。 ApplicationOneDataSetは、get_APIDataによって返される可能性のあるJSON結果の1つと強く型が一致します。

は今、私はスクリプトに通過するAPI URLに基​​づいて動的にApplicationTwoDataSetApplicationOneDataSetを変更する必要があります。

私がしたことは、2番目の変数を通して、 "ApplicationDataSetOne"または "ApplicationDataSetTwo"という文字列を含むクラス名というスクリプトに送信することです。

質問

私の質問は、私は動的にこのラインに変化できる方法です:スクリプトに渡された文字列変数で

var listobject = get_APIData<ApplicationOneDataSet>(url) 

を。それを好きに思えませんが

var ClassType = (string) Dts.Variables["AppClassName"].Value; 
Type type = Type.GetType(ClassType); 
var listobject = get_APIData<type>(url) 

私の本来の考え方は、この線に沿って何かをしました。すべてのヒントは素晴らしいだろう!

答えて

0

正確に2つのタイプがあり、コンパイル時にそれらを知っている限り、私は単純なifを見ていません。それは簡単です、誰もがそれを理解しています。

あなたはです。は実行時に完全に動的ですが、それはあなたがそれが欲しくないところに大きな痛みです。あなたが本当にそのウサギの穴を降りたい場合は、より多くの情報hereを見つけることができます。

+0

私はあなたの解決策を気に入っていますが、もしあなたがそれをするならば、開発者はそれをしますが、最終的にはクラスに基づいて完全に動的である必要があります。私はリソースのおかげで何か読んでいる。 – Caz1224

0

私はあなたが何をしようとしているのか十分に理解していませんが、Interface ApplicationDataSetを作成してそのリストを作成する方法はありますか?このようにして、リストには両方のタイプのデータを含めることができます。