Инъекция OData v4 в MVC 6
в настоящее время я надеюсь, что кто-то авантюрный, возможно, справился с этим препятствием, как текущие сборки для MVC 6 работает на ASP.Net v5.0 нет никаких сервисов, которые я могу найти для загрузки OData в конвейер. Я вызываю приложение.UseMvc () и может создавать маршрутизацию соглашений, но не может определить какой-либо объект HttpConfiguration в новом процессе. Я действительно надеялся работать с комбинированным MVC / WebApi в MVC 6, но OData v4-это игровой чейнджер.
Если кто имел опыт и могли бы указать мне в правильном направлении, пожалуйста, сообщите:
это может не очень помочь, но вот мой класс запуска:
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();
}
}
}
1 ответов
ASP.NET MVC 6 пока не поддерживает OData. Для размещения OData в ASP.NET в настоящее время я бы рекомендовал использовать ASP.NET Web API 2.x, который поддерживает как OData v3, так и OData v4.
Если вы хотите использовать OData в ASP.NET 5 приложение, вы можете использовать мост OWIN для размещения веб-API 2.x on ASP.NET 5, но он все равно не будет использовать 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);
};
}