我正在编写一个 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;
}
最佳答案
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>
关于c#-4.0 - VS 2012 项目的 App_Code 文件夹中的 HttpResponseMessage 不可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19914455/