Как создать экземпляр базового класса из класса с одним и тем же интерфейсом? Ниже приведен пример того, что я пытаюсь сделать:Создать базовый класс из интерфейса
interface IBASE { }
public class BASE : IBASE { }
class TestClass : IBASE { }
void main()
{
TestClass tc = new TestClass();
IBASE ib = (IBASE)tc;
BASE b = (BASE)ib; // error
}
То, что я хочу сделать, это иметь интерфейс в другой сборке, где пользователь имеет доступ только к этой сборке и этот интерфейс и создает класс с интерфейс. Я пытаюсь использовать это как метод расширения, я пытаюсь развернуть свои собственные, а не использовать MEF или другие решения, но у меня такое чувство, что я ошибаюсь.
Так в чем же решение? Спасибо.
Термин для вещи, которую вы ищете, это «[Duck Typing] (http://en.wikipedia.org/wiki/Duck_typing)». –