public IEnumerable <ReferencePage <TPageModel> > GetPagesIn <TPageModel>(string uri) where TPageModel : IPageModel { foreach (var fileUri in directorySearcher.GetFiles(uri)) { var data = FileReader.Read(directorySearcher.GetFile(fileUri)); var parser = parserFactory.CreateParser(data); var model = parser.Parse <TPageModel>(); yield return(new ReferencePage <TPageModel>(model, fileUri)); } }