【发布时间】:2016-09-15 17:37:24
【问题描述】:
我在运行时使用第三方程序集。该程序集公开了一个接受结构通用列表的方法。该结构是在第三方程序集中定义的。
<thirdpartassembly>
public struct stStruct
{
public string member1;
public decimal member2;
}
public class businessType
{
public string processItems(List<stStruct> processItems)
{
//process items, then return result
}
}
</thirdpartassembly>
鉴于在运行时使用反射创建的 [businessType] 实例,我正在尝试将项目列表 [listofStructItems] 传递给 [processItems] 方法。
如何定义/创建 [listofStructItems] ?
到目前为止我尝试了什么:
- 传递包含 stStruct 项的列表。
- 在我的代码中创建与 stStruct (cstStruct) 具有相同定义的结构,然后将 List 传递给 processItems 方法。 (无法将 x 列表转换为 y 列表)。
环境:
- 第三方程序集:.Net v.2
- 我的程序集:高于 v.2 的任何内容
有什么想法吗?我也希望能解释一下为什么上述选项都不起作用。
【问题讨论】:
-
为什么要使用反射?像预期的那样传递
List<stStruct>有什么问题? -
我在运行时加载此程序集,stStruct 在该程序集中定义,在设计时不存在。创建 stStruct 的镜像不起作用(无法将 stStruct 列表转换为 mirrorstStruct)。
-
为什么不将程序集包含在您的项目中,避免因尝试做不可能的事情而头疼?
-
此程序集无法与应用程序一起部署(许可限制)。它应该在安装后部署到应用程序位置
-
为什么是-1?问题描述中是否缺少某些内容?
标签: c# generics dynamic reflection runtime