What you want to do is not possible as of C# 3. You may want to read Eric Lippert's series of articles on adding covariance and contravariance to a hypothetical version of C#[^]. In the meantime, here are some work arounds: -Use a non-generic list. -Make IMyItemProvider implement a non-generic interface, call it IProvidesItemsBase, then make your list be of type List<IProvidesItemsBase>. This will work, of course when you call LoadItems, you'd get back an array of AbstractMyItems.
Life, family, faith: Give me a visit. From my latest post: "A lot of Christians struggle, perhaps at a subconscious level, about the phrase "God of Israel". After all, Israel's God is the God of Judaism, is He not? And the God of Christianity is not the God of Judaism, right?" Judah Himango