【发布时间】:2018-01-02 14:07:39
【问题描述】:
我有一个接受表名的存储过程,然后它读取表结构并以字符串中的类定义的形式返回表结构。
例如:
string myString =
"
public class TableName
{
public int Column1 { get; set; }
}
"
是否可以从包含类定义的字符串创建一个类/类型? 例如:-
Type type = GenerateType(myString);
我必须将此类型变量传递给我的另一段代码,所以请帮助我从包含类定义的字符串中创建类/类型。
【问题讨论】:
-
Try Roslyn。但是您打算如何处理在编译时类型未知的类的实例?
-
您是否正在创建某种类型的ORM?
-
我认为您实际上是在寻找序列化。有很多方法可以实现这一点,这取决于您的需求和类的复杂性。通常,在许多情况下,对 Json 进行序列化就足够了。
-
在运行时创建新类型非常复杂,你真的需要吗?我建议您寻找替代方案,也许dynamic 或ExpandoObject 可以提供帮助吗?如果你发现你必须创建一个新类型给TypeBuilder看看。
-
这听起来像是在开玩笑,但我不是。执行存储过程,复制它生成的类定义,然后将其粘贴到项目中的类文件中。然后您将实现您在问题中提出的要求 - 您将创建一个类型来保存存储过程的输出。
标签: c# .net dynamic-class-creation