【发布时间】:2020-05-15 09:58:39
【问题描述】:
我有一个以字符串形式接收的类名,因此我必须实例化该类并执行相关操作。我可以使用以下代码实例化该类,但是如何将实例转换为存储在字符串中的实际类名???
string serviceObjectToInstantiate = shared.GetServiceName(screenName) + ", Prefill Service";
var objectType = Type.GetType(serviceObjectToInstantiate);
var service = Activator.CreateInstance(objectType);
(如何转换为动态并存储在字符串中的实际类)。 请帮忙..
【问题讨论】:
-
为什么需要投射?
-
我不能直接使用服务对象,就像不能使用任何方法或属性一样。
-
var service = Activator.CreateInstance(objectType);在上面的行之后我想说 service.
或 service.propertyName 但我没有得到任何东西所以我认为 createinstance 必须是某种类型。 -
编译时不知道类型。你怎么知道有什么方法或属性。你可以通过反思找出答案,但赢得了什么?你希望他们实现一个接口吗?
-
@user3395226 为什么你认为
propertyName会存在于这个对象类型上?它们都实现了一些接口还是有一些父共同祖先?
标签: c#