【发布时间】:2016-02-08 08:36:54
【问题描述】:
我有一个通用对象列表:
私有只读列表
这些对象的类型都是“XmlRepository
public IRepository<T> GetRepository<T>() where T : class {...}
我也知道应该返回 XmlRepository
var xmlTypeVar = typeof(XmlType); var myXmlRepo = GetRepository()
但我不知道如何将其转换为正确类型的对象实例...
var myConvertedXmlRepo = myXmlRepo as XmlRepository???>
我必须在这里做什么?以下是不可能的:
var myConvertedXmlRepo = myXmlRepo as XmlRepository因为我不允许提供变量作为泛型类型参数... 这里的这个例子有点简单,所以我不可能用专用类型本身替换类型变量(xmlTypeVar)。
非常感谢任何帮助!非常感谢!
【问题讨论】:
-
在那之后你打算如何处理
myConvertedXmlRepo?我的意思是,你为什么需要确切的类型? -
我在这里写了一个类似问题的答案(虽然问题更具体一点)Create generic List<T> of T4 generated type
-
@LucasTrzesniewski:我想调用一个特定于 XmlRepository
类型的方法。我该怎么做...? -
@Chrysokomas 如果没有更多上下文,我不知道最好的方法是什么,但是您可以从抽象的非泛型类
XmlRepository继承XmlRepository<T>,然后调用您的方法。 -
@LucasTrzesniewski 这就是解决方案!太感谢了!我怎么没看到... :$ 非常感谢您的帮助!
标签: c# generics type-conversion