Подтвердить что ты не робот

.NET. Несколько библиотек с одинаковым пространством имен.

Сегодня я столкнулся с любопытной задачей...

Эта проблема включает в себя две библиотеки .NET, которые мне нужно ссылаться из моего приложения. Оба из которых я не контролирую и имеют одинаковое пространство имен внутри них.

Итак...

У меня есть foo.dll, который содержит класс Widget, который находится в пространстве имен Blue.Red.Orange.

У меня есть bar.dll, который также содержит класс Widget, который также находится в пространстве имен Blue.Red.Orange.

Наконец, у меня есть приложение, которое должно ссылаться как на foo.dll, так и на bar.dll. Это необходимо, так как в моем приложении мне нужно использовать класс Widget из foo, а также класс Widget из bar

Итак, вопрос в том, как я могу управлять этими ссылками, чтобы я мог быть уверен, что я использую правильный класс Widget?

Как уже упоминалось, я не контролирую библиотеки foo или bar, они такие, какие они есть и не могут быть изменены. Однако у меня есть полный контроль над моим приложением.

4b9b3361

Ответ 3

Вы можете использовать свойство Псевдонимы "для разрешения конфликтов. Выберите библиотеку и откройте окно свойств. Об этом уже говорилось в этом сообщении fooobar.com/questions/98068/...

Ответ 4

Ничего себе, это сложно. Я вставляю, я бы создал две библиотеки-обертки:

  • MyBarWrapper.dll(ссылка на bar.dll)
  • MyFooWrapper.dll(ссылка на foo.dll)

и поддерживайте там разные пространства имен.

Ответ 5

Я был бы удивлен, если вы сможете это сделать, не используя рефлексии.

Возможно, было бы проще создать свои собственные библиотеки FooWrapper и BarWrapper, которые будут ссылаться на foo и bar и выставить их содержимое снова в разных пространствах имен.