Здравствуйте, я столкнулся со следующей проблемой:
У меня есть абстрактный класс, который нужно каким-то образом инициализировать, прежде чем я смогу вызвать один из его async
методов, в котором назначены его поля:
class Dependency {}
abstract class Relay : Abs.Api.IAll {
private Dependency dep;
public static async Task<Relay> RunAsync(Dependency _dep) {
Relay daemon = // [ Reflection.Emit derived object]
await daemon.InternalConnectAsync(port);
return daemon;
}
private async Task InternalConnectAsync(Dependency _dep) {
//async code//
this.dep=_dep;
}
}
class AutoGeneratedRelay : Relay {
}
Как видите, объект Dependency
dep
инициализируется после того, как у меня есть concrete
объект, полученный из Relay
.
Проблема в том, что этот объект daemon
будетназначенный производному объекту, полученному через Reflection.Emit
, в нашем случае AutoGeneratedRelay
. Я создаю производный класс с отражением, и я хочу получить его и назначить базовый объект daemon
.