gpt4 book ai didi

c# - 将 OData v4 注入(inject) MVC 6

转载 作者:太空狗 更新时间:2023-10-29 21:50:01 25 4
gpt4 key购买 nike

我目前希望有冒险精神的人可能已经解决了这个障碍,因为在 ASP.Net v5.0 上运行的 MVC 6 的当前构建没有任何我可以找到的服务来将 OData 加载到管道中。我调用 app.UseMvc() 并可以构造约定路由,但无法在新进程中定义任何 HttpConfiguration 对象。我真的很希望在 MVC 6 中使用组合的 MVC/WebApi,但 OData v4 改变了游戏规则。

如果有人有经验并能指出我正确的方向,请指教:

它可能没有太大帮助,但这是我的 Startup 类:

using System;
using Microsoft.AspNet.Builder;
using Microsoft.AspNet.Http;
using Microsoft.Data.OData;
// Won't work, but needs using System.Web.OData.Builder;
using Microsoft.Framework.DependencyInjection;

namespace bmiAPI
{
public class Startup
{
public void Configure(IApplicationBuilder app)
{

app.UseWelcomePage();
app.UseMvc();

}

public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();

}
}
}

最佳答案

ASP.NET MVC 6 尚不支持 OData。要在 ASP.NET 中托管 OData,我目前建议使用 ASP.NET Web API 2.x,它同时支持 OData v3 和 OData v4。

如果您想在 ASP.NET 5 应用程序中使用 OData,可以使用 OWIN bridge在 ASP.NET 5 上托管 Web API 2.x,但它仍然不会使用 MVC 6。

然后你会有一些这样的代码(基于前面提到的桥):

public void Configure(IApplicationBuilder app)
{
// Use OWIN bridge to map between ASP.NET 5 and Katana / OWIN
app.UseAppBuilder(appBuilder =>
{
// Some components will have dependencies that you need to populate in the IAppBuilder.Properties.
// Here's one example that maps the data protection infrastructure.
appBuilder.SetDataProtectionProvider(app);


// Configure Web API for self-host.
HttpConfiguration config = new HttpConfiguration();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);

appBuilder.UseWebApi(config);
};
}

关于c# - 将 OData v4 注入(inject) MVC 6,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27387479/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com