【发布时间】:2020-02-27 12:19:25
【问题描述】:
是否可以使用字符串变量来定义泛型类的类型?我的意思是:
string myType = "System.string"
MyClass<myType> customClass = new MyClass<myType>();
我找到了一些例子,但没有一个有效。
非常感谢。
注意:通常,这些类型将是数字:float、int、double,...我从数据库中获取类型以生成通用和抽象代码。
我正在使用这个例子:Is it possible to serialize a list of System.Object objects using protocol buffers
然后,我的问题在于类型,我不知道会是哪一个,所以,使用另一个示例 (@devNull):Pass An Instantiated System.Type as a Type Parameter for a Generic Class
我不知道如何告诉使用带有参数的构造函数而不是空的。
【问题讨论】:
-
反射是可能的,但这里真正的问题是你为什么要这样做?这通常是代码异味的迹象。
-
要在protobuffer中序列化数据库的信息,我需要知道类型:double,int,...在我的后端,这些信息与数据的值一起存储在数据库中.为什么我使用这个不相关
-
您发现哪些示例不起作用? this one呢?
-
您可以运行
MakeGenericType(typeArgument)方法来制作带有参数的泛型类型。参数类型可以从字符串值加载。 There is example how to do it(你在问题中有那个链接)。 -
这个答案终于解决了我的问题,谢谢!