using System.Threading.Tasks;
using System.Xml.Serialization;
public static void Main()
var obj = new SomeClass(new Service());
private readonly Service _service;
public SomeClass(Service service)
public async void GetTheUser()
var stream = new MemoryStream(Encoding.ASCII.GetBytes(""));
Console.WriteLine("Getting the user");
var user = await _service.DeserializeAsync<User>(new StreamReader(stream));
Console.WriteLine(user?.Name);
public async Task<T> DeserializeAsync<T>(TextReader reader)
return await Task.Run(() =>
Console.WriteLine("start deserialization");
var result = new XmlSerializer(typeof(T)).Deserialize(reader);
Console.WriteLine("Can never get here");
Console.WriteLine($"Exception caught: {e.Message}");
public string Name {get;set;}
public int Age {get;set;}