Ich habe die folgende Methode erwartet:Wie aus Aufgabe Ergebnis erhalten eine nicht generische Aufgabe
public async Task Execute()
{
object previous = null;
// _delegates is of type IReadOnlyCollection<Delegate>
foreach (Delegate method in _delegates)
{
Task executing = (Task) (previous != null
? method.DynamicInvoke(_repository, previous)
: method.DynamicInvoke(_repository);
await executing;
// pseudo code here
if (executing returns something)
previous = executing.Result //<-- ?
else
previous = null;
}
}
Grundsätzlich ich über eine Liste der Delegierten laufen, die ich, um auszuführen. Jeder Delegat erhält ein Repository als Argument und den Rückgabewert des vorherigen Delegaten (falls vorhanden).
Einige Delegaten geben eine Task
zurück und einige geben eine Task<TResult>
zurück. Wenn ich mit letzterem konfrontiert bin, möchte ich den Wert TResult
in previous
speichern, damit ich es als Argument an den nächsten Delegaten übergeben kann.
Gibt es einen Weg, dies zu erreichen?
Ich werde dies testen und Sie wissen lassen. Vielen Dank! –
War gerade etwas ähnliches ich selbst :) Gute one –