I would like to cast a Task<object>
to Task<?>
at the runtime like that :
return task.CastTo(targetType);
Here is my best approach:
[TestMethod]
public void CastToString()
{
var task = CallTaskString("test");
var casting = CastTo<string>(task);
Assert.IsNotNull(casting);
var targetTask = casting as Task<string>;
Assert.IsNotNull(targetTask);
}
private async Task<T> CastTo<T>(Task task)
{
await task.ConfigureAwait(false);
return (T)((dynamic)task).Result;
}
public Task<object> CallTaskString(string value)
{
return Task.Run<object>(() => value);
}
I just want to replace the T by an argument Type targetType like that:
public static async Task CastTo(this Task task, Type targetType)
.
Thanks