Как установить пространство имен по умолчанию для классов, когда два разных класса находятся в разных пространствах имен - PullRequest
2 голосов
/ 13 мая 2009

Хорошо, так как переход на версию 2.5 Nunit вызывает у меня всевозможные проблемы, потому что они ввели статический класс Is в пространство имен nunit.framework.

Было бы хорошо, если бы Rhino.Mocks и некоторые другие фреймворки также не использовали статический класс Is . Так что теперь, если я обновлюсь до 2.5, большая часть моего кода, который использует ограничения на носороги, не будет компилироваться.

Есть ли способ настроить Visual Studio / компилятор c # на уровне проекта, чтобы знать, что когда я говорю Is , я имею в виду пространство имен Rhino Mocks?

PS. Авторы Open Source, я знаю, что вы любите свободные интерфейсы, но прекратите использовать такие распространенные слова, когда они собираются конфликтовать с другими фреймворками! Как насчет некоторых замыканий с лямбдами, вы все еще можете делать что-то вроде myVar.Should (be => be.True ())?

Ответы [ 3 ]

1 голос
/ 08 марта 2018

Используйте , используя директиву псевдонима вверху ваших файлов, чтобы сделать неквалифицированную ссылку на Is, указывающую на тип Rhino.

using Is = Rhino.Mocks.Constraints.Is;

К сожалению, я не думаю, что есть способ сделать это на уровне проекта. Но это по крайней мере лучше, чем поиск и замена всех ваших ссылок.

1 голос
/ 13 мая 2009

Я не знаю контекста NUmit, но, возможно, вам поможет механизм псевдонимов:

namespace N1
{
  class C { }
}

namespace N2
{
    class C { }
}

namespace NamespaceDemos
{
    using C1 = N1.C;
    using C2 = N2.C;
}
0 голосов
/ 13 мая 2009

Попробуйте использовать директиву using.

...