methods
This change applies the 'override' semantic to attribute routes on virtual
methods.
A method override can either inherit attribute routes from a base
definition, or can replace them. It's not possible to inherit routes and
also add to them.
The change here is to make an attribute route defined on a base class
inherited only if no other routes were defined 'closer' to the controller
class.
To put another way, attribute routes can either be inherited or
overridden, you can't inherit + add your own.
This change dramatically simplifies the parameter discovery logic in
DefaultApiDescriptionProvider. Instead of surfacing POCO objects as
parameters, we now fully expand every model.
The rationale is that we want to show every key/value that can be set by
the user and not force consumers of ApiDescription to do that themselves.
Tests are cleaned up to match the new behavior.
- Updated sample to enable setting/clearing cultures via cookie
- Cache CultureInfo construction as it's not built into .NET Core
- Cache RequestCulture construction as they're immutable anyway and created lots per app if the middleware is running
- Fix issue where by invalid culture names were not handled (it crashed)
- Handle the pesky favicon.ico request from browsers
- Ignore .vs folder
- Implemented pluggable strategies for determining request culture
- Added NotNull on public APIs
- Added support for a default request culture
- Added options class for configuring the middleware
- Improved the query string logic to support separate formatting & language cultures
- Implemented the logic for accept-language header
- Added more doc comments