Здравствуйте, hardcase, Вы писали:
А>>Понятно, что в таком виде это работать не будет. А как правильно решить данную задачу?
H>extern alias
Спасибо за ответ. А то я уж было подумал, что придется мутить с динамической загрузкой сборок. То есть хоть какой-то вариант у меня есть.
Но на самом деле дела обстоят значительно хуже. Каждая из сборок содержит несколько десятков классов и порядка сотни методов и, таким образом, весь мой код будет забит if'ами. Хотелось бы поступить проще: инстанцировать в некоторую переменную объект класса либо из одной, либо из другой сборки, типа такого:
SomeType t = ( boolCondition ? new Assembly1::MySpace.MyObject() : new Assembly2::MySpace.MyObject());
А дальше уже совершать все опирации с этим единственным объектом.
Можно ли каким-нибудь хитрым способом определить тип SomeType, чтоб переменной этого типа можно было присваивать объекты MyObject из обеих сборок и вызывать их методы?
PS. Краем уха слышал про "утиную" типизацию в C#. Мне кажется, это именно та ситуация, где такая типизация необходима. Т.е. хотелось бы определить SomeType как класс, реализующий заданный набор методов и чтоб переменной этого класса можно было присвоить объект любого класса, в котором эти методы реализованы. Что-нибудь подобное в C# есть?