Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何以编程方式访问.net应用程序中可用的数据类型_.net_Linq_Reflection - Fatal编程技术网

如何以编程方式访问.net应用程序中可用的数据类型

如何以编程方式访问.net应用程序中可用的数据类型,.net,linq,reflection,.net,Linq,Reflection,简短问题:是否有一种方法可以访问.net应用程序中可用的数据类型作为一个组(并因此使用LINQ查询它们)。像这样 Dim myType = from l in myapplication.availabledatatypes where l.name="name of type I want" select l 详细解释: 我正在尝试使用Linq to SQL将许多旧记录从表中移动到相同的“归档”表中。作为该过程的一部分,我需要从live表中选择记录并将其转换为(相同的)归档类型。我正试图用一

简短问题:是否有一种方法可以访问.net应用程序中可用的数据类型作为一个组(并因此使用LINQ查询它们)。像这样

Dim myType = from l in myapplication.availabledatatypes where l.name="name of type I want" select l
详细解释: 我正在尝试使用Linq to SQL将许多旧记录从表中移动到相同的“归档”表中。作为该过程的一部分,我需要从live表中选择记录并将其转换为(相同的)归档类型。我正试图用一种方法干净利落地实现这一点,这种方法可以通过使用反射来用于所有不同的表/归档表对,遵循这一优秀的指南

我的转换方法将获取object类型的输入并将其转换为object类型的输出,然后我计划在调用转换方法的方法中将其转换为所需的输出类型。我能够获得datacontext的属性,该属性与我要转换的类型具有相同的名称,但我似乎无法通过编程方式提取具有相同名称的类型

Dim typeIamLookingFor as propertyInfo= from l in mydatacontext.getproperties where l.name.contains("archive") and l.name.contains(input.gettype.name) select l
如何从名称空间中可用的类型中选择名称等于TypeIAMLookingForce的类型。显然.getType返回类型PropertyInfo,但我真正想要的是名为=typeiamlookingfoot.name的类型

编辑 谢谢你的建议。GetType让我更接近了,但编译器现在说对象必须实现IConvertible。我将调查这个不同的错误并接受这个答案

Dim output as object
Dim typeName as string = "namespace." & inputObject.gettype.name & "_Archive"
output = output = Convert.ChangeType(output, Type.GetType(typeName))  //generates error: Object Must Implement IConvertible

我认为你的解决方案过于复杂了。根据您的描述,您可能只需要
Type.GetType()


还有更多吗?

我不会尝试找出所有可用的类型,这似乎有些过头了。相反,只要试着实例化这个类型,如果你有它,它就会工作,如果你没有,那么你会得到一个异常。
Type typeIamLookingFor = Type.GetType("archive." + typeName)