public static IPeopleReader GetReader() { if (savedReader?.GetType() == readerType) { return(savedReader); } object readerObject = Activator.CreateInstance(readerType); savedReader = readerObject as IPeopleReader; if (savedReader is null) { throw new InvalidOperationException( $"readerType '{readerType}' does not implement 'IPeopleReader'"); } return(savedReader); }
public static void DisplayPeople() { try { IPeopleReader reader = IReaderFactory.GetReader(); Console.WriteLine(reader.GetType()); var people = reader.GetPeople(); foreach (var person in people) { Console.WriteLine(person); } } catch (Exception ex) { Console.WriteLine($"{ex.GetType()}:\n {ex.Message}"); } finally { Console.WriteLine("==================="); } }