Проблема с расширением и свертыванием Visual Studio ASP.Net в общих обработчиках ashx

У меня Visual Studio 2008 Professional, и у меня возникают проблемы с расширением и свертыванием блоков кода метода на страницах универсального обработчика ASP.Net (.ashx).

Я бы подумал, что вы можете сделать то же самое, что и в коде веб-страниц .aspx.

У меня такая же проблема с другими коробками, даже с VS 2008 Standard и VS 2005 Professional. Все коробки полностью пропатчены (ОС и Visual Studio).

Есть ли у кого-нибудь предложения по включению этой функции?


person 410    schedule 11.12.2008    source источник
comment
Отличный вопрос. Я надеюсь, что кто-то другой сможет дать лучший ответ. Меня раздражает то, что при редактировании файлов ASHX вместо настроек C # используются настройки отступа кода для HTML.   -  person Jacob    schedule 15.12.2010


Ответы (4)


Вы можете заставить Visual Studio игнорировать тот факт, что это код, с которым вы работаете, перейдя по ссылке:

Инструменты | Опции

И открываем вкладку «Текстовый редактор | Расширения файлов».

Создайте новую запись для расширения «ashx», сопоставленную с редактором «Microsoft Visual C #» (или «Microsoft Visual Basic», в зависимости от вашего предпочтения), и «Добавьте» ее.

ОК, закройте и снова откройте свой файл ashx, и ваши блоки кода рухнут до вашего удовольствия, но директива @ будет довольно уродливой.

У вас такая же проблема, если у вас есть серверный скрипт в файле .aspx (например, в проекте веб-сайта, и вы не «помещаете код в отдельный файл»), тогда вы также не можете свернуть там блоки классов.

person Zhaph - Ben Duguid    schedule 11.12.2008
comment
А потом, чтобы Visual Studio перестала ныть по поводу директивы WebHandler, просто закомментируйте строку, она будет работать так, как будто это не так! - person Saeb Amini; 02.11.2012
comment
это полностью исправляет очертание, но, к сожалению, нарушает intellisense - person MaxPRafferty; 03.04.2013
comment
Он исправил intellisense на моей машине (vs2012) - person JP Hellemons; 29.07.2013

Создайте класс в каталоге 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 открывается в правом редакторе :)

@ WebHandler docs

Протестировано в VS 2019.

person bigEsmurf    schedule 21.04.2011
comment
Это очень изящное маленькое решение :) - person Zhaph - Ben Duguid; 21.09.2011
comment
УДИВИТЕЛЬНОЕ решение ‹3 - person ; 09.01.2018
comment
Это также позволяет нам начать использовать Refactor.Rename в коде обработчика! - person Jargs; 28.04.2020

Просто выберите фрагмент кода, например:

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" ...

person KakashiJack    schedule 30.06.2015
comment
Это наиболее практичное решение, которое я нашел. - person Alexandre N.; 01.03.2016
comment
Вы рок-звезда. Ty. - person supertemp; 24.04.2018

Добавьте /// перед первой строкой.

Нравится:

///<%@ WebHandler Language="C#" Class="FooBar"%>
person Kaspars    schedule 26.07.2011
comment
Это будет работать, только если вы добавите расширение ashx, сопоставленное с редактором Microsoft Visual C #, на вкладке Инструменты / Параметры / Текстовый редактор / Расширения файлов. - person Alexandre N.; 01.03.2016