HttpResponseMessage在VS 2012项目的App_Code文件夹中不可用

Lee*_*e Z 7 c#-4.0 asp.net-web-api system.net.httpwebrequest visual-studio-2012

我正在编写一个Web API项目(MVC架构).我有一个实用程序类,其方法返回一个HttpResponseMessage.如果此类放在Utility文件夹中,一切正常.如果我尝试将该类放在App_Code文件夹中,我会收到消息"找不到类型或命名空间名称'HttpResponseMessage'."

下面提供了发生这种情况的方法的示例.需要做什么才能在App_Code文件夹中将变量或方法声明为HttpResponseMessage?

    public HttpResponseMessage GetResponseMessage<T>(T item, MediaTypeFormatter mtFormatter)
    {
        HttpResponseMessage response = new HttpResponseMessage()
        {
            Content = new ObjectContent<T>(item, mtFormatter)
        };

        return response;
    }
Run Code Online (Sandbox Code Playgroud)

Eil*_*lon 16

之外的文件App_Code时,Visual Studio中调用C#编译器,并将它基于的csproj文件中引用适当的引用集(DLL)进行编译.

App_Code当ASP.NET在运行时调用C#编译器并根据web.config文件中的引用传递适当的引用程序集(DLL)时,将编译内部文件.

要添加对System.Net.Http(所在的程序集HttpResponseMessage)的引用,请打开web.config文件并合并此设置:

<compilation debug="true" targetFramework="4.5">
    <assemblies>
        <add assembly="System.Net.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
    </assemblies>
</compilation>
Run Code Online (Sandbox Code Playgroud)