我正在尝试使用外部代码文件来包含几个 .ashx 处理程序的一些帮助程序类。示例之一是使用 ListToJSON,它只是将嵌套列表(正在使用类似的东西List<List<whatevers>>
)转换为 JSON(将被扔进 context.response)
ListToJSON 类在同一个文件中时可以正常工作。我试图将它放入一个 Helper.cs 文件中,该文件包含在 VS2010 的同一个项目中,因为这些类在几个不同的处理程序中使用。
我的印象是“使用Helper;” 是我需要做的,但我仍然收到错误“找不到类型或命名空间帮助程序(您是否缺少指令或程序集引用?”(并且智能感知也没有看到它)
我也尝试将两个代码文件放入同一个命名空间。同样的错误。
它不是DLL文件,它只是同一个项目中的ac#代码文件。我真的应该将它编译为 DLL 来执行此操作吗?如果是这样,我该怎么做?(一旦我这样做,我可以右键单击->添加参考,对吗?)
我想我应该使用 App_Code 文件夹,但我不确定如何在 VS 中设置它以便正确引用它。
我的处理程序文件(骨架)
<%@ WebHandler Language="C#" Class="generateReport" %>
using System;
using System.Web;
using System.Configuration;
using System.Data.SqlClient;
using System.Collections.Generic;
using System.Diagnostics;
using Helper;
public class generateReport : IHttpHandler {
public void ProcessRequest (HttpContext context) {
ListToJSON Converter = new ListToJSON();
//context.Response stuff goes here.
}
}
我的帮助文件 Helper.cs - 它位于同一个项目目录中,并且包含在项目中:
using <stuff>;
namespace Helper
{
public class ListToJSON
{
//class definition here
}
}
更新:所以,我将 Helper.cs 放入/App_Code/
文件夹中,它似乎玩得很好。Intellisense 在我做之后在 Helper.cs 中拾取东西using Helper;
当我在 IIS 上尝试它时,我得到了以下熟悉的错误:
Compiler Error Message: CS0246: The type or namespace name 'Helper' could not be found (are you missing a using directive or an assembly reference?)
Line 19: using Helper;
Source File: <path>\info.ashx Line: 19
通过 Visual Studio 的 IIS 模拟器运行此程序时,我没有收到任何错误。当我通过 IIS (localhost) 运行它时,我得到描述的 IIS 内部服务器错误。App_Code文件夹是通过VS制作的,我右键选择Add ASP.NET Folder > App Code
\
编辑:添加标签iis