Re[2]: Подскажите, как выбраться из такой ловушки
От: Аноним  
Дата: 16.08.12 11:50
Оценка:
Здравствуйте, hardcase, Вы писали:

А>>Понятно, что в таком виде это работать не будет. А как правильно решить данную задачу?


H>extern alias


Спасибо за ответ. А то я уж было подумал, что придется мутить с динамической загрузкой сборок. То есть хоть какой-то вариант у меня есть.

Но на самом деле дела обстоят значительно хуже. Каждая из сборок содержит несколько десятков классов и порядка сотни методов и, таким образом, весь мой код будет забит if'ами. Хотелось бы поступить проще: инстанцировать в некоторую переменную объект класса либо из одной, либо из другой сборки, типа такого:

SomeType t = ( boolCondition ? new Assembly1::MySpace.MyObject() : new Assembly2::MySpace.MyObject());

А дальше уже совершать все опирации с этим единственным объектом.

Можно ли каким-нибудь хитрым способом определить тип SomeType, чтоб переменной этого типа можно было присваивать объекты MyObject из обеих сборок и вызывать их методы?

PS. Краем уха слышал про "утиную" типизацию в C#. Мне кажется, это именно та ситуация, где такая типизация необходима. Т.е. хотелось бы определить SomeType как класс, реализующий заданный набор методов и чтоб переменной этого класса можно было присвоить объект любого класса, в котором эти методы реализованы. Что-нибудь подобное в C# есть?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.