Visual Studio ASP.Net扩展和折叠ashx泛型处理程序中的问题

Jas*_*ris 13 asp.net ashx visual-studio-2008 visual-studio

我有Visual Studio 2008 Professional,我在ASP.Net Generic Handler页面(.ashx)中扩展和折叠方法代码块时遇到问题

我本以为你可以像.aspx网页背后的代码那样做同样的事情.

即使使用VS 2008 Standard和VS 2005 Professional,我在其他盒子上也有同样的问题.所有盒子都已完全打补丁(OS和Visual Studio.)

有没有人对启用此功能有任何建议?

Zha*_*uid 21

您可以通过以下方式强制Visual Studio忽略它正在使用的代码的事实:

工具| 选项

并打开"文本编辑器|文件扩展名"选项卡.

为扩展名"ashx"创建一个新条目,映射到编辑器"Microsoft Visual C#"(或"Microsoft Visual Basic",如您的偏好所示),并"添加"它.

确定对话框,关闭并重新打开您的ashx文件,您的代码块将崩溃到您的内容,但@指令将相当丑陋.

如果您在.aspx文件中有服务器端脚本(例如在网站项目中而不是"将代码放在单独的文件中"),则会出现同样的问题,然后您也无法折叠其中的类块.

  • 这绝对修复了概述,但不幸的是打破了intellisense (4认同)

小智 9

是的,有一个不同的解决方案;)我试图将代码放在一个单独的.cs文件中,就像使用.aspx文件一样,但这是不可能的.所以我现在处理这个的方式是我在AppCode目录中创建了一个类,ashx文件只是扩展了......就像这样:

something.ashx:

<%@ WebHandler Language="C#" Class="SomethingHandler" %>
Run Code Online (Sandbox Code Playgroud)

在AppCode文件夹中,我创建了文件cSomething.cs

using System;
using System.Web;
// using blabla...

public class SomethingHandler : IHttpHandler
{
        public void ProcessRequest(HttpContext c)
        {
    etc...
Run Code Online (Sandbox Code Playgroud)

现在我可以打开cSomething.cs,用#region折叠编辑我的C#代码,因为.cs文件在正确的编辑器中打开:)


小智 6

在第一行前面添加 ///。

像这样:

///<%@ WebHandler Language="C#" Class="FooBar"%>
Run Code Online (Sandbox Code Playgroud)

  • 只有在“工具/选项/文本编辑器/文件扩展名”选项卡中添加映射到编辑器“Microsoft Visual C#”的扩展名“ashx”时,这才有效。 (3认同)

小智 6

只需选择一段代码,例如:

using System;
using System.Web;
using System.Web.Security;
using System.Collections.Generic;
using System.Configuration;
using System.Data.SqlClient;
using System.Data;
Run Code Online (Sandbox Code Playgroud)

然后按“ Ctrl + M + H ”和Vualá...概述正在工作...和Intellisense Too ...

要停止概述,请按“ Ctrl + M + P ” ...