我正在尝试在ashx文件上展开和折叠方法和其他东西,就像文件后面的任何其他代码一样。当我做tools > options > text editor and adding ashx as an extention of visual studio c#
时,一切似乎都没问题。我可以展开和折叠方法,也可以看到文件顶部的属性和方法。但后来我失去了大部分智能感知。我无法达到我的用户定义的对象和方法。
我发现的类似问题并没有帮助我解决这个问题
Visual Studio ASP.Net expand and collapse issue in ashx generic handlers
答案 0 :(得分:2)
有同样的问题 - this answer(你提到的第一个问题,但在你问过后发布)对我来说似乎是最好的选择。
总结一下:在(最好是专用的).cs文件中创建一个单独的类作为“代码隐藏”,在那里完成所有工作(包括实现IHttpHandler
)并在其中使用实际的处理程序。 ashx只是在不做任何其他事情的情况下继承它:
public class MyHandler:MyIHttpHandlerCodeBehindClass {}
这为您的处理程序类提供完整的代码折叠和IntelliSense,而不会出现您提到的问题。唯一的缺点是一个额外的文件,但对我来说这是值得的。
答案 1 :(得分:1)
我将我的大部分ashx更改为aspx,只是因为它可以有CodeFile(单独的.cs文件)。
答案 2 :(得分:1)
陷入同样的烦恼。 要进一步采取@brichins解决方案/ reference, 而不是在你的ashx中使用继承只是直接引用AppCode文件夹中的类。
ashx文件仅 包含以下内容
<%@ WebHandler Language="C#" Class="MyHandler" %>
然后在AppCode文件夹中创建该类/ MyHandler.cs文件
using System;
using System.Web;
public class MyHandler : IHttpHandler {
public void ProcessRequest (HttpContext context) {
context.Response.ContentType = "text/plain";
context.Response.Write("Hello World");
}
public bool IsReusable {
get {
return false;
}
}
}
如果需要,使用名称空间来避免类名冲突。