【发布时间】:2015-10-06 00:27:03
【问题描述】:
我有一些类实现了下面的接口:
ISearchBase<T>
但我不知道要实例化哪个类,所以我让“用户决定”,如下例:
var objectResponse = Activator.CreateInstance(Type.GetType(ResponseNamespace));
问题是: 每个这些类都有一个返回,我试图这样使用:
var object = (ISearchBase<objectResponse >)
Activator.CreateInstance(Type.GetType(Namespace));
但是编译器不允许我这样做……我该怎么办?
错误是:
找不到类型或命名空间名称“objectResponse”。
【问题讨论】:
-
编译器会给你什么错误?
-
你不能实例化接口。您肯定需要为您的帖子添加一些清晰度。
-
你不能做
var object = (ISearchBase<X>)...,除非你在编译时知道X。 -
@BetaSystems-RodrigoDuarte 因为不清楚你真正想要实现什么,那么 Enigmativity 的答案确实是唯一可能的答案。
-
@BetaSystems-RodrigoDuarte - 是的,不能这样做。如果我们知道你接下来要如何处理
object,可能会有办法绕过它。