如何通过继承的类型参数查找类型?

问题描述 投票:0回答:1

我有很多从基类继承的类,但具有不同的参数,例如:

public class Model1(Provider provider)
   : BaseModel(provider, id: "model-1");

public class Model2(Provider provider)
   : BaseModel(provider, id: "model-2");

现在我需要通过“id”获取类型。 假设我有我的程序集中的所有类型。 我该怎么做? 例如,如果我传递“model-1”,我应该返回“Model1”或完整的命名空间。

c# reflection
1个回答
0
投票

答案是:你不能。从 Reflection 的角度来看,这两种类型在名称上不同,它们具有不同的身份,但在成员方面完全相同,包括构造函数。

为了使反映的信息不同,您需要向基类的成员集中添加一些不同的成员

BaseModel
。但是,它不会是基于传递给基类构造函数的值进行分类。

你的缩进对我来说看起来很奇怪而且完全不清楚,而解释你的一些最终目标可以大大提高帮助你的机会。所以,问题是:为什么?如果您可以解释您希望通过派生类的预期分类实现什么目标,那么我很可能可以通过一些实际可行的建议提供额外的帮助。

© www.soinside.com 2019 - 2024. All rights reserved.