我有点奇怪的问题。使用 SSIS 在 C#脚本中工作我已经开发出基于动态数据构建列表的需求。
背景
为了解释它,一个脚本任务被激活,它具有一个可变的API URL,然后关闭并拉回一个JSON字符串,然后使用以下代码将其抛出到强类型列表中。
var listobject = get_APIData<ApplicationOneDataSet>(url)
这样做的课程是长篇大论,在这个问题的背景下并不是真的需要。
ApplicationOneDataSet 是与get_APIData
返回的可能JSON结果之一的强类型匹配。
现在我需要根据我传递给脚本的API URL动态地将 ApplicationOneDataSet 更改为 ApplicationTwoDataSet 。
所以我所做的是通过第二个变量发送到名为class name的脚本,该脚本包含字符串&#34; ApplicationDataSetOne&#34;或&#34; ApplicationDataSetTwo&#34;根据我称之为的上下文。
问题
我的问题是如何动态改变这一行:
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 :(得分:0)
我不确定我是否完全理解你要做的是什么,但是如何编写一个接口ApplicationDataSet然后制作一个列表呢?这样,您的列表就可以包含两种类型的数据。
答案 1 :(得分:0)
只要您可以使用两种类型,并且您在编译时就知道它们,我看起来不会比简单的if
更进一步。它很有效,很容易,每个人都理解它。
你可以在运行时完全动态地完成它,但这是......你不想要它的巨大痛苦。如果你真的想要去那个兔子洞,你可以找到更多信息here。