Постановка с использованием оператора внутри пространства имен не выполняется

Я пытался получить какой-то старый код, правильно оформленный с помощью стиля. Он просит включить внутренние операторы. Это сработало хорошо для всех, кроме одного. Я уменьшил проблему до приведенного ниже кода.

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 разработан другой командой, и мы не можем его модифицировать.

Ответ 1

Поскольку вы находитесь внутри пространства имен A, тогда B.C будет фактически A.B.C.

Используйте global::, чтобы указать, что вы ищете корень:

using global::B.C;

Ответ 2

B.C противоречит A.B.C. Вам нужно переименовать B.C в нечто другое или указать его с помощью global