Razbezhkin
@Razbezhkin
программист, преподаватель

Как указать сборку при создании объекта?

Здравствуйте.
Ситуация следующая: некто создал две сборки внутри которых определил некоторые классы, причем в обоих сборках существуют классы с одним и тем же полным названием, т.е. совпадает и namespaсe и имя класса.
Мне необходимо использовать в своем проекте обе сборки, поэтому я линкую их в свой проект.
И мне так же необходимо вызвать статический метододного из типов, который дублируется в обоих сборках.
Когда я пишу такой код:
namespace.classname.staticmethod1();
то получаю ошибку: "неоднозначный вызов следующих методов или свойств"

Подскажите, как можно декларативно (т.е. не прибегая к рефлексии в рантайме) вызвать нужный мне статический метод?
Спасибо.
  • Вопрос задан
  • 240 просмотров
Решения вопроса 1
Razbezhkin
@Razbezhkin Автор вопроса
программист, преподаватель
Нашел решение на которое меня натолкнул DENIS
в файле кода в самом верху ставим такой код:
extern alias myassembly;

при обращении к классу используем такой синтаксис:
myassembly::namespace.classname.staticmethod1();

и еще в свойствах ссылки на сборку (Solution Explorer -> Project -> References -> myassembly.dll -> Properties), находим параметр "псевдоним" (alias), в котором по умолчанию написано "global", и через запятую добавляем ему "myassembly", т.е. тот идентификатор, который мы в самом начале указывали в extern alias.
После этого все компилируется и работает.
Спасибо DENIS!
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Creditpower2015
используя алиасы. возможно так:
using pseudo1 = namespace1;
using pseudo2 = namespace2;

в коде:
pseudo1::class1()
pseudo2::class1()

https://docs.microsoft.com/ru-ru/dotnet/csharp/pro...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы