Если вы поместите их в пространство имен выше, чем ваше текущее, они будут видны автоматически.
Так что, если у вас есть пространства имен для таких проектов, как:
AdventureWorksInc.Web
AdventureWorksInc.Logic
AdventureWorksInc.DataAccess
Затем объявите ваше расширение непосредственно в:
namespace AdventureWorksInc
{
public static class HtmlHelpers
{
public static string AutoCloseHtmlTags(this string html)
{
//...
}
}
}
Этот метод расширения будет отображаться всякий раз, когда вы пишете код в любом пространстве вложенных имен AdventureWorksInc без необходимости использования оператора.
Однако вышеприведенное расширение демонстрирует возможный недостаток. Из-за того, что он работает со строками, он теперь будет отображаться как метод расширения для всех строк, включая те, которые на самом деле не являются HTML. На самом деле это не проблема с определением пространства имен, а просто неправильное использование метода расширения. Это должна быть обычная статика, требующая стандартного параметра, поэтому вызов является явным.
Обычно хорошо разработанные методы расширения с соответствующим типом параметров не будут отображаться для типов, которые никогда не будут применяться.