我試圖使用外部代碼文件來爲幾個.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