我试图使用外部代码文件来为几个.ashx处理程序包含一些辅助类。例子之一是使用ListToJSON,它只是将嵌套列表(Theres像List<List<whatevers>>
这些正在处理的东西)转换为JSON(它将被扔进context.response)包括代码隐藏类的ASHX -
ListToJSON类在同一个文件中工作正常。我试图把它放到一个Helper.cs文件中,该文件包含在VS2010中的同一个项目中,因为这些类在几个不同的处理程序中使用。
我的印象是“使用助手”是我需要做的,但我仍然得到错误“类型或名称空间帮助器无法找到(您是否缺少指令或程序集引用?” (并且intellisense也没有看到它)
I我也试过把这两个代码文件放到同一个命名空间中,同样的错误
它不是一个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/
文件夹中,它看起来很好玩。智能感知是捡东西在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
这很奇怪。尝试把它放在App_Code中,看看是否修复它。当一切都在同一个项目中时,您不必设置任何参考。 – Oliver
我已经通过将我的帮助器类放入App_Code文件夹中进行了快速修复。虽然期待看到真实的答案。 – BumbleB2na
是的,我认为App_Code文件夹实际上是“正确”的方式来做到这一点(假设你不想做一个预编译的DLL) – sylverfyre