【发布时间】:2019-02-14 23:38:53
【问题描述】:
我希望能够通过某种方式(即从数据库)获得我收到的字符串值的实际类型,以便我可以在像DoSomething<Type>() 这样的通用方法中使用该类型。
在我的项目中,我的类 Plane 和 Car 位于 MyCompany.MySolution.Vehicle 命名空间中,就像这样
- MyCompany.MySolution.Vehicle
|+Interfaces
|-Implementations
|-Car
|-Plane
我收到车辆类型作为字符串。所以,我得到字符串“Car”,这意味着,我需要得到类型Car,这样我就可以在通用方法中使用该类型来注册它,如下所示:
MyFactory.Register<Car>(carId)
所以,MyFactory 是调用 Register() 方法的静态类。
同样,我收到字符串“Plane”,这意味着,我需要获取类型Plane,这样我就可以在上面的通用方法中使用该类型来注册一个平面。
我尝试使用类似的东西
MyFactory.Register<Type.GetType("MyCompany.MySolution.Vehicle.Implementations.Car")>(carId)
,但这不起作用。
【问题讨论】:
-
您是否尝试过使用
Car的完全限定名称(包括命名空间)?即Type.GetType("MyCompany.MySolution.Vehicle.Implementations.Car") -
@matt-dot-net 不,它不是重复的。 Rufus,是的,我试过了,不会返回任何东西