Проблема расширения и свертывания Visual Studio ASP.Net в универсальных обработчиках ashx
-
21-08-2019 - |
Вопрос
У меня 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 (например, в проекте веб-сайта, и вы не «поместите код в отдельный файл»), тогда вы также не сможете свернуть блоки классов там.
Другие советы
Создайте класс в App_Code
каталог, на который просто ссылается файл ashx...так:
Что-тоHandler.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.
Просто выделите фрагмент кода, например:
using System;
using System.Web;
using System.Web.Security;
using System.Collections.Generic;
using System.Configuration;
using System.Data.SqlClient;
using System.Data;
Затем нажмите "Ctrl+М+Ч"И Вуала...Схема работает сейчас...И IntelliSense тоже...
Чтобы остановить обрисовку, нажмите "Ctrl+М+П"...
Добавьте /// перед первой строкой.
Так:
///<%@ WebHandler Language="C#" Class="FooBar"%>