Ответ 1
Поскольку вы находитесь внутри пространства имен A
, тогда B.C
будет фактически A.B.C
.
Используйте global::
, чтобы указать, что вы ищете корень:
using global::B.C;
Я пытался получить какой-то старый код, правильно оформленный с помощью стиля. Он просит включить внутренние операторы. Это сработало хорошо для всех, кроме одного. Я уменьшил проблему до приведенного ниже кода.
namespace B.C
{
using System;
public class Hidden
{
public void SayHello()
{
Console.WriteLine("Hello");
}
}
}
namespace A.B.C
{
using B.C;
public class Program
{
static void Main(string[] args)
{
new Hidden().SayHello();
}
}
}
это дает ошибку компиляции Ошибка
"Тип или имя пространства имен" Скрытый "не может быть найден (вам не хватает директивы using или ссылки на сборку?)".
Если я перемещаю с помощью B.C; над пространством имен A.B.C, он строит правильно. Класс Hidden разработан другой командой, и мы не можем его модифицировать.
Поскольку вы находитесь внутри пространства имен A
, тогда B.C
будет фактически A.B.C
.
Используйте global::
, чтобы указать, что вы ищете корень:
using global::B.C;
B.C противоречит A.B.C. Вам нужно переименовать B.C в нечто другое или указать его с помощью global