рдпрджрд┐ рдЖрдкрдХреЛ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдорд┐рд▓рддреА рд╣реИ, рддреЛ рдХреГрдкрдпрд╛ рдПрдХ рд╕рдорд╕реНрдпрд╛ рдЦреЛрд▓реЗрдВ рдФрд░ рдЕрдкрдиреА рд╕рдорд╕реНрдпрд╛ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдиреЗ рдореЗрдВ рд╣рдорд╛рд░реА рд╕рд╣рд╛рдпрддрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрдерд╛рд╕рдВрднрд╡ рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд╛рди рдХрд░реЗрдВред рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ, рдЕрдЧрд░ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рдПрдХ рдкреБрд▓-рдЕрдиреБрд░реЛрдз рд╕рдмрдорд┐рдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВред рдпрджрд┐ рдЖрдкрдХреЛ рдкреБрд▓-рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд╕рд╛рде рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдорд╛рд░реНрдЧрджрд░реНрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдХреГрдкрдпрд╛ рд╣рдорд╛рд░реЗ рдпреЛрдЧрджрд╛рди рджрд┐рд╢рд╛рдирд┐рд░реНрджреЗрд╢реЛрдВ рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВред рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдк рд╢реИрд▓реА рджрд┐рд╢рд╛рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЛ рдпрд╛рдж рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рдореИрдВ рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛ :D
рдиреЛрдЯ: рдХреНрдпреЛрдВрдХрд┐ рдиреИрдиреНрд╕реА 2.0-рдХреНрд▓рд┐рдВрдЯреЗрд╕реНрдЯрд╡реБрдб рдПрдХ рдкреВрд░реНрд╡-рд░рд┐рд▓реАрдЬрд╝ рд╣реИ, рдЖрдкрдХреЛ
-pre
рдЯреЙрдЧрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рд╣реЛрдВрдЧреЗ, рдЕрд░реНрдерд╛рддinstall-package Nancy -pre
рдХреГрдкрдпрд╛ рдЗрд╕ рдореБрджреНрджреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрди рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЛ рдкреЛрд╕реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░реЗрдВ рдЬреЛ рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рд░рд┐рдкреЛрд░реНрдЯ рдХрд┐рдП рдЧрдП рдмрдЧ рдпрд╛ рдкреБрд▓-рдЕрдиреБрд░реЛрдз рд╕реЗ рд╕реАрдзреЗ рд╕рдВрдмрдВрдзрд┐рдд рдирд╣реАрдВ рд╣реИрдВред
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрд╣рдЪрд╛рдиреЗ рдЧрдП рдХрд╛рд░реНрдпреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рд╣реИ рдЬрд┐рд╕реЗ 2.0.0-clinteastwood
рд░рд┐рд▓реАрдЬ рдХреЗ рдорджреНрджреЗрдирдЬрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдФрд░ $#$3 2.0.0-dangermouse
#$ рдЬрд╛рд░реА рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдкреВрд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред TODO-рд╕реВрдЪреА рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ рдФрд░ рдЬреИрд╕реЗ рд╣реА рдЖрдЗрдЯрдо рдорд┐рд▓рддреЗ рд╣реИрдВ рдЙрдиреНрд╣реЗрдВ рдЬреЛрдбрд╝реЗрдВ, рдкреБрд▓-рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд▓рд┐рдВрдХ рдЬреЛрдбрд╝реЗрдВ рдЬреЛ рдЙрдиреНрд╣реЗрдВ рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреЗрдЬреЗ рдЬрд╛рддреЗ рд╣реИрдВ
AsyncUsageAnalyzers
рдпрд╣ рд╕рднреА project.json
рдФрд░ packages.config
рдореЗрдВ рдмрд┐рд▓реНрдб рдбрд┐рдкреЗрдВрдбреЗрдВрд╕реА рдкрд░ рд╕реЗрдЯ рд╣реИ, рдпрд╣рд╛рдВ рдорд┐рд░рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╣реА рдЙрджрд╛рд╣рд░рдг рд╣реИ - (рдкреБрд▓ рдЕрдиреБрд░реЛрдз #2700 @jchannon*.nuspec
рдлрд╝рд╛рдЗрд▓реЗрдВ рд╣рдЯрд╛ рджреЗрдВ (рдкреБрд▓-рдЕрдиреБрд░реЛрдз #2658 @jchannon)web.config.transform
рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Nancy.Hosting.Aspnet\project.json
рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ (рдкреБрд▓-рдЕрдиреБрд░реЛрдз #2661 @thecodejunkie)app/web.config.transform
рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Nancy.ViewEngines.Razor\project.json
рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ (рдкреБрд▓-рдЕрдиреБрд░реЛрдз #2661 @thecodejunkie)Nancy.ViewEngines.Razor.BuildProvider
(рдмрд┐рд▓реНрдб рдЯрд╛рд░рдЧреЗрдЯ рд╕рд╣рд┐рдд) рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Nancy.ViewEngines.Razor\project.json
рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВRequest.Cookies
рдФрд░ Request.Headers.Cookie
рдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдПрдХ рдХреЛ рд╣рдЯрд╛ рджреЗрдВ рдЪрд░реНрдЪрд╛ рдХреЗ рд▓рд┐рдП #2628 рджреЗрдЦреЗрдВAsyncUsageAnalyzers
рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕реЗ рд╣рдЯрд╛рдпрд╛ рдЬрд╛рдирд╛ рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдЗрд╕реЗ 2.0.0-dangermouse
рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕реЗ рд╕рднреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдирд┐рд░реНрдорд╛рдг рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛Nancy.Hosting.Aspnet
рдкреИрдХреЗрдЬ *.config
рдкрд░рд┐рд╡рд░реНрддрди рд▓рд╛рдЧреВ рдирд╣реАрдВ рд╣реЛрдЧрд╛, рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдХреЛ рддрд╛рд░-рддрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЗрд╕реЗ рд╕реНрд╡рдпрдВ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╣реЛрдЧрд╛Nancy.ViewEngines.Razor
рдкреИрдХреЗрдЬ *.config
рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛, рдЖрдкрдХреЛ рдЗрд╕реЗ рд╕реНрд╡рдпрдВ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╣реЛрдЧрд╛Nancy.ViewEngines.Razor
рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдб рдкреНрд░реЛрд╡рд╛рдЗрдбрд░ NuGet рдкреИрдХреЗрдЬ рд╕реЗ рдЧрд╛рдпрдм рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ рдиреИрдиреНрд╕реА рд░реЗрдЬрд░ рд╡реНрдпреВ рдореЗрдВ рд╕рд┐рдВрдЯреИрдХреНрд╕ рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд┐рдВрдЧ рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд░рд╣реА рд╣реИредрдпрд╣ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рд░рди-рдЯрд╛рдЗрдо рдлреЗрдВрдХрддрд╛ рд╣реИ NullReferenceException
:
pipelines.BeforeRequest.AddItemToStartOfPipeline((ctx, _) =>
{
// do stuff
// Func<NancyContext, Response>, Func<NancyContext, CancellationToken, Response>
return null;
});
рдпрд╣ рд╕рд╣реА рд╣реИ:
pipelines.BeforeRequest.AddItemToStartOfPipeline((ctx, _) =>
{
//do stuff
// Func<NancyContext, CancellationToken, Task<Response>>
return Task<Response>.FromResult((Response)null);
});
рджреАрд╡рд╛рд░ рдХреЗ рдЦрд┐рд▓рд╛рдл рдореЗрд░реЗ рд╕рд┐рд░ рдХреЛ рдХреЛрд╕рдиреЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рд╕рд╛ рд╕рдордп рд▓рдЧрд╛ рдЬрдм рддрдХ рдХрд┐ рдореБрдЭреЗ рдпрд╣ рдкрддрд╛ рдирд╣реАрдВ рдЪрд▓рд╛ рдХрд┐ рди рддреЛ рд╕реБрдкрд░-рдбреБрдкрд░ рд╣реИ рдФрд░ рди рд╣реА рдЦреБрд╢ рд╣реИред
@рджрд╛рдирдмрд░реБрдЖ рдзрдиреНрдпрд╡рд╛рджред рдореИрдВрдиреЗ https://github.com/NancyFx/Nancy/issues/2665 рдЦреЛрд▓рд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЬреИрд╕реЗ рд╣реА рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдмреВрдЯрд╕реНрдЯреНрд░реИрдкрд░ рдХреЛ рджреЗрдЦрдиреЗ рдХрд╛ рд╕рдордп рд╣реЛрдЧрд╛, рдореИрдВ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рд╕рд╛рдорд╛рди рдХреЛ рдПрдХ рдУрд╡рд░рд╣рд╛рд▓ рджреЗрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ (рдЬреЛ рдЬрд▓реНрдж рд╕реЗ рдЬрд▓реНрдж рд╣реЛрдЧрд╛ рдореИрдВрдиреЗ рд╣рдореЗрдВ рдирдП csproj рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджрд┐рдпрд╛ рд╣реИ рдФрд░ рдпрд╣ рдЕрдм #2720 рдореЗрдВ рд╣реЛ рд░рд╣рд╛ рд╣реИ)
рдпрд╛рдХ рд╢реЗрд╡рд┐рдВрдЧ! рдореИрдВ
рдпрд╣ рдХреЛрдб рдЕрдкрд╡рд╛рдж рдлреЗрдВрдХрддрд╛ рд╣реИ, рдХреНрдпрд╛ рдпрд╣ рдмрдЧ рд╣реИ?
```рд╕реА#
рдкрдмреНрд▓рд┐рдХ рдХреНрд▓рд╛рд╕ рдмреЗрд╕рдореЙрдбреНрдпреВрд▓: рдиреИрдиреНрд╕реАрдореЙрдбреНрдпреВрд▓
{
рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдмреЗрд╕рдореЙрдбреНрдпреВрд▓ (рд╕реНрдЯреНрд░рд┐рдВрдЧ рдпреВрдЖрд░рдПрд▓): рдмреЗрд╕ (рдпреВрдЖрд░рдПрд▓)
{
// рдХрд╕реНрдЯрдо рддрд░реНрдХ
}
}
рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╡рд░реНрдЧ рдП: рдмреЗрд╕рдореЙрдбреНрдпреВрд▓
{
рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдП (): рдЖрдзрд╛рд░ ("рдпреВрдЖрд░рдПрд▓рдП")
{
}
}
рдкрдмреНрд▓рд┐рдХ рдХреНрд▓рд╛рд╕ рдмреА: рдиреИрдиреНрд╕реАрдореЙрдбреНрдпреВрд▓
{
рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдмреА ()
{
}
}
System.InvalidOperationException рд╣реБрдИ
рдПрдЪ рдкрд░рд┐рдгрд╛рдо = 0x80131509
рд╕рдВрджреЗрд╢ = рд╕рдВрд░рдЪрдирд╛ рдХреЗ рджреМрд░рд╛рди рдирд┐рд░реНрднрд░рддрд╛ рдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдПрдХ рдХреЛ рд╕рдВрддреБрд╖реНрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╕рдордп рдХреБрдЫ рдЧрд▓рдд рд╣реЛ рдЧрдпрд╛, рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдкрдиреЗ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рд╕рднреА рдирдИ рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░ рд▓рд┐рдпрд╛ рд╣реИ рдФрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП рдЖрдВрддрд░рд┐рдХ рдЕрдкрд╡рд╛рдж рдХрд╛ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░реЗрдВред
рд╕реНрд░реЛрдд =
рд╕реНрдЯреИрдХ рдЯреНрд░реЗрд╕:
Nancy.Bootstrapper.NancyBootstrapperBase 1.SafeGetNancyEngineInstance()
at Nancy.Bootstrapper.NancyBootstrapperBase
рдкрд░ 1.GetEngine()
Nancy.Owin.NancyMiddleware.UseNancy(NancyOptions options) рдкрд░
E:visual_studiopiggy-banksourcePiggyBank.SiteStartup.cs:line 31 рдореЗрдВ Nancy.Owin.DelegateExtensions.UseNancy(Action 1 builder, NancyOptions options)
at PiggyBank.Site.Startup.<>c.<Configure>b__2_0(Action
1 x) рдкрд░
Microsoft.AspNetCore.Builder.OwinExtensions.UseOwin (IApplicationBuilder рдирд┐рд░реНрдорд╛рддрд╛, Action`1 рдкрд╛рдЗрдкрд▓рд╛рдЗрди) рдкрд░
E:visual_studiopiggy-banksourcePiggyBank.SiteStartup.cs:line 31 рдореЗрдВ PiggyBank.Site.Startup.Configure(IAapplicationBuilder рдРрдк, IHostingEnvironment env, ILoggerFactory loggerFactory) рдкрд░
рдЖрдВрддрд░рд┐рдХ рдЕрдкрд╡рд╛рдж 1:
TinyIoCResolutionException: рдкреНрд░рдХрд╛рд░ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрде: Nancy.NancyEngine
рдЖрдВрддрд░рд┐рдХ рдЕрдкрд╡рд╛рдж 2:
TinyIoCResolutionException: рдкреНрд░рдХрд╛рд░ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрде: Nancy.Routing.DefaultRequestDispatcher
рдЖрдВрддрд░рд┐рдХ рдЕрдкрд╡рд╛рдж 3:
TinyIoCResolutionException: рдкреНрд░рдХрд╛рд░ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрде: Nancy.Routing.DefaultRouteResolver
рдЖрдВрддрд░рд┐рдХ рдЕрдкрд╡рд╛рдж 4:
TinyIoCResolutionException: рдкреНрд░рдХрд╛рд░ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрде: Nancy.Routing.RouteCache
рдЖрдВрддрд░рд┐рдХ рдЕрдкрд╡рд╛рдж 5:
TinyIoCResolutionException: рдкреНрд░рдХрд╛рд░ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрде: BaseModule
рдЖрдВрддрд░рд┐рдХ рдЕрдкрд╡рд╛рдж 6:
TinyIoCResolutionException: рдкреНрд░рдХрд╛рд░ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрде: System.String
рдЖрдВрддрд░рд┐рдХ рдЕрдкрд╡рд╛рдж 7:
TinyIoCResolutionException: рдкреНрд░рдХрд╛рд░ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрде: System.Char[]
рдЖрдВрддрд░рд┐рдХ рдЕрдкрд╡рд╛рдж 8:
ArgumentNullException: рдорд╛рди рд╢реВрдиреНрдп рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ред
```
рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдмреЗрд╕ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдХреЛрдИ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдирд╣реАрдВ рд╣реИ рдЬрд┐рд╕реЗ IoC рдХрдВрдЯреЗрдирд░ рд╕рдВрддреБрд╖реНрдЯ рдХрд░ рд╕рдХреЗред рдпрд╣ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рдХрд┐ string
рдХреЛ рдХреИрд╕реЗ рд╕рдВрднрд╛рд▓рдирд╛ рд╣реИред рдЕрдЧрд░ BaseModule
рдХреЛ рдЦреБрдж рд╕реЗ рдирд╣реАрдВ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рддреЛ рдореЗрд░рд╛ рд╕реБрдЭрд╛рд╡ рд╣реИ рдХрд┐ рдЖрдк рдЗрд╕реЗ abstract
рдмрдирд╛ рд▓реЗрдВ ...
рдкреБрд░рд╛рдирд╛:
Get["post/{id}"] = Get["old/post/{id}"] = p =>{};
рдирдпрд╛ (2.0):
?
рдЧреЗрдЯ ("рдкреЛрд╕реНрдЯ/{рдЖрдИрдбреА}", MyMethod);
рдЧреЗрдЯ ("рдкреБрд░рд╛рдирд╛/рдкреЛрд╕реНрдЯ/{рдЖрдИрдбреА}", MyMethod);
рдЧреЗрдЯ ("рдкреЛрд╕реНрдЯ/{рдЖрдИрдбреА}", MyMethod);
рдЧреЗрдЯ ("рдкреБрд░рд╛рдирд╛/рдкреЛрд╕реНрдЯ/{рдЖрдИрдбреА}", MyMethod);
рд╡рд╣ рдЙрдкрдпреЛрдЧ рдХреБрдЫ рд╕рдВрдХреЗрдд рдЬреЛрдбрд╝рддрд╛ рд╣реИред рдореБрдЭреЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдпрд╣ рдкрд╕рдВрдж рдирд╣реАрдВ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИред
рд╢рд╛рдпрдж рдзрд╛рд░рд╛рдкреНрд░рд╡рд╛рд╣ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╡рд┐рдзрд┐ рдЕрдзрд┐рднрд╛рд░ рд╣реЛрдирд╛ рд╕рдВрднрд╡ рд╣реИ? рдЙрджрд╛рд╣рд░рдг:
Get("post/{id}")
.Get("old/post/{id}")
.Post("whatever/{id}", p => { return HttpStatusCode.Ok });
рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐
Get("post/{id}")
.Get("old/post/{id}")
.Post("whatever/{id}")
.Do(p => { return HttpStatusCode.Ok });
рдЕрдЧрд░ рдпрд╣ рд╡рд╛рдВрдЫрдиреАрдп рд╣реИ рддреЛ рдореИрдВ рдкреАрдЖрд░ рдкрд░ рд╡рд╛рд░ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдмреЗрд╕ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдХреЛрдИ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдирд╣реАрдВ рд╣реИ рдЬрд┐рд╕реЗ IoC рдХрдВрдЯреЗрдирд░ рд╕рдВрддреБрд╖реНрдЯ рдХрд░ рд╕рдХреЗред рдпрд╣ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рдХрд┐
string
рдХреЛ рдХреИрд╕реЗ рд╕рдВрднрд╛рд▓рдирд╛ рд╣реИред рдЕрдЧрд░BaseModule
рдХреЛ рдЦреБрдж рд╕реЗ рдирд╣реАрдВ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рддреЛ рдореЗрд░рд╛ рд╕реБрдЭрд╛рд╡ рд╣реИ рдХрд┐ рдЖрдк рдЗрд╕реЗabstract
рдмрдирд╛ рд▓реЗрдВ ...