У меня есть базовый класс, какC#: Сделайте экземпляр подкласса
abstract class A <TEntity, TLog>
{
public abstract TLog Get(TEntity entity);
}
и несколько подклассов, как
class B : A<Branch, BranchLog>
{
public override BranchLog Get(Branch entity)
{
return null;
}
}
Теперь я могу получить экземпляр подкласса в зависимости от его общей реализации базовый класс, как,
class Mapper
{
public TLog GetMapped<TEntity, TLog>(TEntity entity)
{
/*if called with GetMapped<Branch, BranchLog>, make instance of B b = new B()*/
/*returng b.Get(entity)*/
return null;
}
}
или каким-либо образом, а не отражение
без отражения? используя 'as' и' is'? – Noctis
@Dipon: что вы на самом деле пытаетесь сделать здесь? Как клиенты Mapper-класса на самом деле используют ваш класс Mapper? –
Самый эффективный способ - с отражением. – Enigmativity