Hvor for å registrere attributt ruting tilpasset klasse begrensninger

stemmer
2

Jeg prøver å lage førsteklasses API app witn vNext, blir kjent med WebAPI. Jeg ønsker å bruke attributt ruter med type begrensninger. Hvor skriver jeg en slags konfigurasjon for å kartlegge begrensningen navn til tilpassede klasser / enums? Jeg prøvde Configuremetoden Startup.cs, men har ingen anelse om hva de skal gjøre med IApplicationBuilder. Søke på https://github.com/aspnet/Routing ga ingenting.

Jeg antar at det bør være et sted å koble til denne delen av koden et sted (for enums begrensning):

routes.MapAttributeRoutes(cfg =>
{
    // ...
    cfg.InlineRouteConstraints.Add(customenum, typeof(EnumRouteConstraint<MyEnum>));
});
Publisert på 09/12/2014 klokken 03:20
kilden bruker
På andre språk...                            


1 svar

stemmer
3

De innebygde begrensninger er konfigurert i options. Mønsteret for å definere alternativene er en felles mønster i ASPNET 5, koden under foreStartup.cs

public IServiceProvider ConfigureServices(IServiceCollection serviceCollection)
{
    /// rest of the code

    serviceCollection.Configure<RouteOptions>(routeOptions =>
    {
        routeOptions =>
            routeOptions.ConstraintMap
            .Add("yourstring", typeof(YourConstraintType)));
    }
}

Siden alternativene definisjonen i oppstart område av koden endringer på tvers av versjoner, limte jeg noe som fungerer i siste biter. Du må kanskje justere basert på hvilken versjon du har i ditt prosjekt.

Her er hvordan MVC legger skikken existsbegrensningen. Merk dette blir kalt fra AddMvc().

Her er MVC startup.cs prøven.

Her er problemet sporing legge prøven og test for dette scenariet.

Vær også oppmerksom på at vi nå støtter inline begrensninger også i vanlige ruter.

Svarte 09/12/2014 kl. 20:56
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more