7

我正在编写一个 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;
    }
4

1 回答 1

19

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>
于 2013-11-11T20:53:02.050 回答