У меня Visual Studio 2008 Professional, и у меня возникают проблемы с расширением и свертыванием блоков кода метода на страницах универсального обработчика ASP.Net (.ashx).
Я бы подумал, что вы можете сделать то же самое, что и в коде веб-страниц .aspx.
У меня такая же проблема с другими ящиками, даже с VS 2008 Standard и VS 2005 Professional. Все коробки полностью пропатчены (ОС и Visual Studio).
Есть ли у кого-нибудь предложения по включению этой функции?





Вы можете заставить Visual Studio игнорировать тот факт, что это код, с которым вы работаете, перейдя по ссылке:
Инструменты | Опции
И открываем вкладку «Текстовый редактор | Расширения файлов».
Создайте новую запись для расширения «ashx», сопоставленную с редактором «Microsoft Visual C#» (или «Microsoft Visual Basic», в зависимости от вашего предпочтения), и «Добавьте» ее.
ОК, закройте и снова откройте свой файл ashx, и ваши блоки кода рухнут до вашего удовольствия, но директива @ будет довольно уродливой.
У вас такая же проблема, если у вас есть серверный скрипт в файле .aspx (например, в проекте веб-сайта, и вы не «помещаете код в отдельный файл»), тогда вы также не можете свернуть там блоки классов.
А потом, чтобы Visual Studio перестала ныть по поводу директивы WebHandler, просто закомментируйте строку, она будет работать так, как будто это не так!
это полностью исправляет очертание, но, к сожалению, нарушает intellisense
Он исправил intellisense на моей машине (vs2012)
Создайте класс в каталоге App_Code, на который ссылается файл ashx ... вот так:
SomethingHandler.ashx:
<%@ WebHandler Language = "C#" Class = "SomethingHandler" %>
А в папке App_Code создал файл SomethingHandler.cs с классом SomethingHandler.
using System;
using System.Web;
// using blabla...
public class SomethingHandler : IHttpHandler
{
public void ProcessRequest(HttpContext c)
{
etc...
Теперь я могу просто открыть SomethingHandler.cs, отредактировать свой код C#, свернув #region, потому что файл .cs открывается в правом редакторе :)
Протестировано в VS 2019.
Это очень изящное маленькое решение :)
УДИВИТЕЛЬНОЕ решение <3
Это также позволяет нам начать использовать Refactor.Rename в коде обработчика!
Добавьте /// перед первой строкой.
Как это:
///<%@ WebHandler Language = "C#" Class = "FooBar"%>
Это будет работать, только если вы добавите расширение «ashx», сопоставленное с редактором «Microsoft Visual C#» на вкладке «Инструменты / Параметры / Текстовый редактор / Расширения файлов».
Просто выберите фрагмент кода, например:
using System;
using System.Web;
using System.Web.Security;
using System.Collections.Generic;
using System.Configuration;
using System.Data.SqlClient;
using System.Data;
Затем нажмите "Ctrl + M + H" и Vualá ... Схема работает ... И Intellisense тоже ...
Чтобы остановить обводку, нажмите "Ctrl + M + P" ...
Это наиболее практичное решение, которое я нашел.
Вы рок-звезда. Ty.
Отличный вопрос. Я надеюсь, что кто-то другой сможет дать лучший ответ. Меня раздражает то, что при редактировании файлов ASHX вместо настроек C# используются настройки отступа кода для HTML.