Here's what I came up with: /// <summary> /// /// </summary> /// <typeparam name="T"></typeparam> interface IEntityProvider<T> where T: BaseEntity { /// <summary> /// Gets the specified id. /// </summary> /// <param name="id">The id.</param> /// <returns></returns> T Get(int id); /// <summary> /// Gets all. /// </summary> /// <returns></returns> List<T> GetAll(); }
/// <summary> /// /// </summary> interface IUserProvider : IEntityProvider(User) { /// <summary> /// Finds the name of the by last. /// </summary> /// <param name="lastName">Name of the last.</param> /// <returns></returns> User FindByLastName(string lastName); } /// <summary> /// /// </summary> /// <typeparam name="I"></typeparam> /// <typeparam name="T"></typeparam> class ProviderFactory<I, T> where I: IEntityProvider<T> where T: BaseEntity { /// <summary> /// Creates the provider. /// </summary> /// <returns></returns> public static I CreateProvider(){} } // Create the Provider IUserProvider x = ProviderFactory<IUserProvider, User>.CreateProvider(); // Find the User User y = x.FindBy... // Get all the users User[] yy = x.GetAll().ToArray(); Mostly these comments were created by GhostDoc [1], but some were added by hand... Thanks, Shawn Wildermuth http://adoguy.com http://wildermuthconsulting.com Microsoft MVP (C#), MCSD.NET, Author and Speaker [1] http://www.roland-weigelt.de/ghostdoc/ =================================== This list is hosted by DevelopMentorĀ® http://www.develop.com View archives and manage your subscription(s) at http://discuss.develop.com