我有以下课程
public class AbstractJobDao<T> where T : IJob {
protected T buildJob() {
// create an IJob implementation instance based on the generic parameter
}
}
public class FullTimeJobDao : AbstractJobDao<FullTimeJob> {
}
public class InternshipDao : AbstractJobDao<Internship> {
}
FullTimeJob和Internship都实现了IJob接口。我希望 buildJob() 方法能够使用反射推断 Dao 实现类中的泛型,然后创建该类型的实例。有没有办法在 .NET 3.5 中使用反射来做到这一点?
如果是这样,那么 buildJob() 方法中的代码行应该是什么样的?
编辑——我想我不清楚我的问题。我想要的是在 FullTimeJobDao 内部调用 buildJob() 来创建 FullTimeJob 的实例。当从 InternshipDao 内部调用 buildJob() 时,它应该根据类顶部定义的泛型类型创建一个 Internship 实例。