Repository: aspnet/AspNetWebStack
Branch: main
Commit: af67fe18a182
Files: 3343
Total size: 17.7 MB
Directory structure:
gitextract_28ij9x6y/
├── .appveyor.yml
├── .azuredevops/
│ └── dependabot.yml
├── .config/
│ ├── CredScanSuppressions.json
│ └── tsaoptions.json
├── .gitattributes
├── .gitignore
├── .nuget/
│ └── packages.config
├── .travis.yml
├── CODE-OF-CONDUCT.md
├── CONTRIBUTING.md
├── Directory.Build.props
├── Directory.Build.targets
├── LICENSE.txt
├── NuGet.Config
├── README.md
├── Runtime.NetFramework.slnf
├── Runtime.NetStandard.slnf
├── Runtime.msbuild
├── Runtime.sln
├── SECURITY.md
├── Settings.StyleCop
├── Tools.sln
├── azure-pipelines-public.yml
├── azure-pipelines.yml
├── build.cmd
├── eng/
│ ├── GetXCopyMSBuild.ps1
│ └── templates/
│ └── default-build.yml
├── es-metadata.yml
├── global.json
├── src/
│ ├── CodeAnalysisDictionary.xml
│ ├── Common/
│ │ ├── AttributeList.cs
│ │ ├── CollectionExtensions.cs
│ │ ├── CommonWebApiResources.Designer.cs
│ │ ├── CommonWebApiResources.resx
│ │ ├── DictionaryExtensions.cs
│ │ ├── EfficientTypePropertyKey.cs
│ │ ├── Empty.cs
│ │ ├── Error.cs
│ │ ├── HashCodeCombiner.cs
│ │ ├── HttpMethodHelper.cs
│ │ ├── ListWrapperCollection.cs
│ │ ├── NonOwnedStream.cs
│ │ ├── PathHelpers.cs
│ │ ├── PrefixContainer.cs
│ │ ├── PropertyHelper.cs
│ │ ├── Routing/
│ │ │ ├── Constraints/
│ │ │ │ ├── AlphaRouteConstraint.cs
│ │ │ │ ├── BoolRouteConstraint.cs
│ │ │ │ ├── CompoundRouteConstraint.cs
│ │ │ │ ├── DateTimeRouteConstraint.cs
│ │ │ │ ├── DecimalRouteConstraint.cs
│ │ │ │ ├── DoubleRouteConstraint.cs
│ │ │ │ ├── FloatRouteConstraint.cs
│ │ │ │ ├── GuidRouteConstraint.cs
│ │ │ │ ├── IntRouteConstraint.cs
│ │ │ │ ├── LengthRouteConstraint.cs
│ │ │ │ ├── LongRouteConstraint.cs
│ │ │ │ ├── MaxLengthRouteConstraint.cs
│ │ │ │ ├── MaxRouteConstraint.cs
│ │ │ │ ├── MinLengthRouteConstraint.cs
│ │ │ │ ├── MinRouteConstraint.cs
│ │ │ │ ├── OptionalRouteConstraint.cs
│ │ │ │ ├── RangeRouteConstraintBase.cs
│ │ │ │ └── RegexRouteConstraint.cs
│ │ │ ├── DefaultInlineConstraintResolver.cs
│ │ │ ├── DirectRouteBuilder.cs
│ │ │ ├── DirectRouteFactoryContext.cs
│ │ │ ├── IDirectRouteBuilder.cs
│ │ │ ├── IDirectRouteFactory.cs
│ │ │ ├── IDirectRouteProvider.cs
│ │ │ ├── IInlineConstraintResolver.cs
│ │ │ ├── IRoutePrefix.cs
│ │ │ ├── InlineRouteTemplateParser.cs
│ │ │ ├── PathContentSegment.cs
│ │ │ ├── PathLiteralSubsegment.cs
│ │ │ ├── PathParameterSubsegment.cs
│ │ │ ├── PathSegment.cs
│ │ │ ├── PathSeparatorSegment.cs
│ │ │ ├── PathSubsegment.cs
│ │ │ ├── RouteEntry.cs
│ │ │ ├── RouteFactoryAttribute.cs
│ │ │ ├── RouteInfoDirectRouteFactory.cs
│ │ │ ├── RouteParser.cs
│ │ │ ├── RoutePrecedence.cs
│ │ │ └── SubRouteCollection.cs
│ │ ├── TaskHelpers.cs
│ │ ├── TaskHelpersExtensions.cs
│ │ ├── TraceWriterExceptionMapper.cs
│ │ └── TypeExtensions.cs
│ ├── CommonAssemblyInfo.cs
│ ├── CommonAssemblyInfo.vb
│ ├── CommonResources.Designer.cs
│ ├── CommonResources.resx
│ ├── Directory.Build.props
│ ├── GlobalSuppressions.cs
│ ├── Microsoft.AspNet.Facebook/
│ │ ├── Authorization/
│ │ │ └── FacebookAuthorizeFilter.cs
│ │ ├── Client/
│ │ │ ├── FacebookClientExtensions.cs
│ │ │ ├── FacebookQueryHelper.cs
│ │ │ └── FacebookRequestHelper.cs
│ │ ├── FacebookAppSettingKeys.cs
│ │ ├── FacebookAuthenticationModule.cs
│ │ ├── FacebookAuthorizeAttribute.cs
│ │ ├── FacebookConfiguration.cs
│ │ ├── FacebookConnection.cs
│ │ ├── FacebookContext.cs
│ │ ├── FacebookFieldModifierAttribute.cs
│ │ ├── FacebookGroupConnection.cs
│ │ ├── FacebookHtmlHelperExtensions.cs
│ │ ├── FacebookRedirectContext.cs
│ │ ├── GlobalFacebookConfiguration.cs
│ │ ├── GlobalSuppressions.cs
│ │ ├── JavaScriptRedirectResult.cs
│ │ ├── Microsoft.AspNet.Facebook.csproj
│ │ ├── ModelBinders/
│ │ │ ├── FacebookContextBinderAttribute.cs
│ │ │ ├── FacebookContextModelBinder.cs
│ │ │ ├── FacebookRedirectContextBinderAttribute.cs
│ │ │ └── FacebookRedirectContextModelBinder.cs
│ │ ├── Models/
│ │ │ ├── ChangeEntry.cs
│ │ │ ├── ChangeNotification.cs
│ │ │ └── SubscriptionVerification.cs
│ │ ├── PermissionContext.cs
│ │ ├── PermissionHelper.cs
│ │ ├── PermissionStatus.cs
│ │ ├── PermissionsStatus.cs
│ │ ├── Properties/
│ │ │ └── AssemblyInfo.cs
│ │ ├── Providers/
│ │ │ ├── DefaultFacebookClientProvider.cs
│ │ │ ├── DefaultFacebookPermissionService.cs
│ │ │ ├── IFacebookClientProvider.cs
│ │ │ └── IFacebookPermissionService.cs
│ │ ├── Realtime/
│ │ │ └── FacebookRealtimeUpdateController.cs
│ │ ├── Resources.Designer.cs
│ │ ├── Resources.resx
│ │ ├── ShowPromptResult.cs
│ │ └── packages.config
│ ├── Microsoft.Web.Helpers/
│ │ ├── Analytics.cshtml
│ │ ├── Facebook.cshtml
│ │ ├── FileUpload.cshtml
│ │ ├── GamerCard.cshtml
│ │ ├── GlobalSuppressions.cs
│ │ ├── Gravatar.cs
│ │ ├── GravatarRating.cs
│ │ ├── LinkShare.cshtml
│ │ ├── LinkShareSite.cs
│ │ ├── Maps.cshtml
│ │ ├── Microsoft.Web.Helpers.csproj
│ │ ├── PreApplicationStartCode.cs
│ │ ├── Properties/
│ │ │ └── AssemblyInfo.cs
│ │ ├── ReCaptcha.cshtml
│ │ ├── Resources/
│ │ │ ├── HelpersToolkitResources.Designer.cs
│ │ │ └── HelpersToolkitResources.resx
│ │ ├── Themes.cs
│ │ ├── ThemesImplementation.cs
│ │ ├── UrlBuilder.cs
│ │ ├── Video.cs
│ │ ├── VirtualPathUtilityBase.cs
│ │ ├── VirtualPathUtilityWrapper.cs
│ │ └── packages.config
│ ├── Microsoft.Web.Mvc/
│ │ ├── AcceptAttribute.cs
│ │ ├── ActionLinkAreaAttribute.cs
│ │ ├── AjaxOnlyAttribute.cs
│ │ ├── AreaHelpers.cs
│ │ ├── AsyncManagerExtensions.cs
│ │ ├── ButtonBuilder.cs
│ │ ├── ButtonsAndLinkExtensions.cs
│ │ ├── CachedExpressionCompiler.cs
│ │ ├── ContentTypeAttribute.cs
│ │ ├── ControllerExtensions.cs
│ │ ├── Controls/
│ │ │ ├── ActionLink.cs
│ │ │ ├── DropDownList.cs
│ │ │ ├── EncodeType.cs
│ │ │ ├── Hidden.cs
│ │ │ ├── Label.cs
│ │ │ ├── MvcControl.cs
│ │ │ ├── MvcInputControl.cs
│ │ │ ├── Password.cs
│ │ │ ├── Repeater.cs
│ │ │ ├── RepeaterItem.cs
│ │ │ ├── RouteValues.cs
│ │ │ └── TextBox.cs
│ │ ├── CookieValueProviderFactory.cs
│ │ ├── CopyAsyncParametersAttribute.cs
│ │ ├── CreditCardAttribute.cs
│ │ ├── CssExtensions.cs
│ │ ├── DeserializeAttribute.cs
│ │ ├── DynamicReflectionObject.cs
│ │ ├── DynamicViewDataDictionary.cs
│ │ ├── DynamicViewPage.cs
│ │ ├── DynamicViewPageOfTModel.cs
│ │ ├── ElementalValueProvider.cs
│ │ ├── EmailAddressAttribute.cs
│ │ ├── Error.cs
│ │ ├── ExpressionUtil/
│ │ │ ├── BinaryExpressionFingerprint.cs
│ │ │ ├── CachedExpressionCompiler.cs
│ │ │ ├── ConditionalExpressionFingerprint.cs
│ │ │ ├── ConstantExpressionFingerprint.cs
│ │ │ ├── DefaultExpressionFingerprint.cs
│ │ │ ├── ExpressionFingerprint.cs
│ │ │ ├── ExpressionFingerprintChain.cs
│ │ │ ├── FingerprintingExpressionVisitor.cs
│ │ │ ├── HashCodeCombiner.cs
│ │ │ ├── Hoisted.cs
│ │ │ ├── HoistingExpressionVisitor.cs
│ │ │ ├── IndexExpressionFingerprint.cs
│ │ │ ├── LambdaExpressionFingerprint.cs
│ │ │ ├── MemberExpressionFingerprint.cs
│ │ │ ├── MethodCallExpressionFingerprint.cs
│ │ │ ├── ParameterExpressionFingerprint.cs
│ │ │ ├── TypeBinaryExpressionFingerprint.cs
│ │ │ └── UnaryExpressionFingerprint.cs
│ │ ├── FileExtensionsAttribute.cs
│ │ ├── FormExtensions.cs
│ │ ├── FuturesFiles/
│ │ │ ├── DefaultTemplates/
│ │ │ │ ├── DisplayTemplates/
│ │ │ │ │ ├── Boolean.ascx
│ │ │ │ │ ├── Collection.ascx
│ │ │ │ │ ├── Decimal.ascx
│ │ │ │ │ ├── EmailAddress.ascx
│ │ │ │ │ ├── HiddenInput.ascx
│ │ │ │ │ ├── Html.ascx
│ │ │ │ │ ├── Object.ascx
│ │ │ │ │ ├── String.ascx
│ │ │ │ │ └── Url.ascx
│ │ │ │ └── EditorTemplates/
│ │ │ │ ├── Boolean.ascx
│ │ │ │ ├── Collection.ascx
│ │ │ │ ├── Decimal.ascx
│ │ │ │ ├── HiddenInput.ascx
│ │ │ │ ├── MultilineText.ascx
│ │ │ │ ├── Object.ascx
│ │ │ │ ├── Password.ascx
│ │ │ │ └── String.ascx
│ │ │ ├── iismap.vbs
│ │ │ ├── registermvc.wsf
│ │ │ └── unregistermvc.wsf
│ │ ├── GlobalSuppressions.cs
│ │ ├── Html/
│ │ │ └── HtmlHelperExtensions.cs
│ │ ├── HtmlButtonType.cs
│ │ ├── IMachineKey.cs
│ │ ├── ImageExtensions.cs
│ │ ├── Internal/
│ │ │ └── ExpressionHelper.cs
│ │ ├── LinkBuilder.cs
│ │ ├── LinkExtensions.cs
│ │ ├── MachineKeyWrapper.cs
│ │ ├── MailToExtensions.cs
│ │ ├── Microsoft.Web.Mvc.csproj
│ │ ├── ModelBinding/
│ │ │ ├── ArrayModelBinder.cs
│ │ │ ├── ArrayModelBinderProvider.cs
│ │ │ ├── BinaryDataModelBinderProvider.cs
│ │ │ ├── BindNeverAttribute.cs
│ │ │ ├── BindRequiredAttribute.cs
│ │ │ ├── BindingBehavior.cs
│ │ │ ├── BindingBehaviorAttribute.cs
│ │ │ ├── CollectionModelBinder.cs
│ │ │ ├── CollectionModelBinderProvider.cs
│ │ │ ├── CollectionModelBinderUtil.cs
│ │ │ ├── ComplexModelDto.cs
│ │ │ ├── ComplexModelDtoModelBinder.cs
│ │ │ ├── ComplexModelDtoModelBinderProvider.cs
│ │ │ ├── ComplexModelDtoResult.cs
│ │ │ ├── DictionaryModelBinder.cs
│ │ │ ├── DictionaryModelBinderProvider.cs
│ │ │ ├── ExtensibleModelBinderAdapter.cs
│ │ │ ├── ExtensibleModelBinderAttribute.cs
│ │ │ ├── ExtensibleModelBindingContext.cs
│ │ │ ├── GenericModelBinderProvider.cs
│ │ │ ├── IExtensibleModelBinder.cs
│ │ │ ├── KeyValuePairModelBinder.cs
│ │ │ ├── KeyValuePairModelBinderProvider.cs
│ │ │ ├── KeyValuePairModelBinderUtil.cs
│ │ │ ├── ModelBinderConfig.cs
│ │ │ ├── ModelBinderErrorMessageProvider.cs
│ │ │ ├── ModelBinderProvider.cs
│ │ │ ├── ModelBinderProviderCollection.cs
│ │ │ ├── ModelBinderProviderOptionsAttribute.cs
│ │ │ ├── ModelBinderProviders.cs
│ │ │ ├── ModelBinderUtil.cs
│ │ │ ├── ModelValidatedEventArgs.cs
│ │ │ ├── ModelValidatingEventArgs.cs
│ │ │ ├── ModelValidationNode.cs
│ │ │ ├── MutableObjectModelBinder.cs
│ │ │ ├── MutableObjectModelBinderProvider.cs
│ │ │ ├── SimpleModelBinderProvider.cs
│ │ │ ├── TypeConverterModelBinder.cs
│ │ │ ├── TypeConverterModelBinderProvider.cs
│ │ │ ├── TypeMatchModelBinder.cs
│ │ │ └── TypeMatchModelBinderProvider.cs
│ │ ├── ModelCopier.cs
│ │ ├── MvcSerializer.cs
│ │ ├── Properties/
│ │ │ ├── AssemblyInfo.cs
│ │ │ ├── MvcResources.Designer.cs
│ │ │ └── MvcResources.resx
│ │ ├── RadioExtensions.cs
│ │ ├── ReaderWriterCache.cs
│ │ ├── Resources/
│ │ │ ├── ActionType.cs
│ │ │ ├── AjaxHelperExtensions.cs
│ │ │ ├── AtomEntryActionResult.cs
│ │ │ ├── AtomFeedActionResult.cs
│ │ │ ├── AtomServiceDocumentActionResult.cs
│ │ │ ├── DataContractJsonActionResult.cs
│ │ │ ├── DataContractXmlActionResult.cs
│ │ │ ├── DefaultFormatHelper.cs
│ │ │ ├── DefaultFormatManager.cs
│ │ │ ├── FormatHelper.cs
│ │ │ ├── FormatManager.cs
│ │ │ ├── HtmlHelperExtensions.cs
│ │ │ ├── HttpRequestBaseExtensions.cs
│ │ │ ├── IEnumerableExtensions.cs
│ │ │ ├── IRequestFormatHandler.cs
│ │ │ ├── IResponseFormatHandler.cs
│ │ │ ├── JsonFormatHandler.cs
│ │ │ ├── MultiFormatActionResult.cs
│ │ │ ├── RequestContextExtensions.cs
│ │ │ ├── ResourceControllerFactory.cs
│ │ │ ├── ResourceErrorActionResult.cs
│ │ │ ├── ResourceModelBinder.cs
│ │ │ ├── ResourceRedirectToRouteResult.cs
│ │ │ ├── RouteCollectionExtensions.cs
│ │ │ ├── UriHelperExtensions.cs
│ │ │ ├── WebApiEnabledAttribute.cs
│ │ │ └── XmlFormatHandler.cs
│ │ ├── ScriptExtensions.cs
│ │ ├── SerializationExtensions.cs
│ │ ├── ServerVariablesValueProviderFactory.cs
│ │ ├── SessionValueProviderFactory.cs
│ │ ├── SkipBindingAttribute.cs
│ │ ├── TempDataValueProviderFactory.cs
│ │ ├── TypeDescriptorHelper.cs
│ │ ├── TypeHelpers.cs
│ │ ├── UrlAttribute.cs
│ │ ├── ValueProviderUtil.cs
│ │ └── ViewExtensions.cs
│ ├── Microsoft.Web.WebPages.OAuth/
│ │ ├── AuthenticationClientData.cs
│ │ ├── GlobalSuppressions.cs
│ │ ├── Microsoft.Web.WebPages.OAuth.csproj
│ │ ├── OAuthAccount.cs
│ │ ├── OAuthWebSecurity.cs
│ │ ├── PreApplicationStartCode.cs
│ │ ├── Properties/
│ │ │ ├── AssemblyInfo.cs
│ │ │ ├── WebResources.Designer.cs
│ │ │ └── WebResources.resx
│ │ ├── ProviderUserIdSerializationHelper.cs
│ │ ├── Resources/
│ │ │ ├── OAuthResources.Designer.cs
│ │ │ └── OAuthResources.resx
│ │ ├── WebPagesOAuthDataProvider.cs
│ │ ├── WebPagesOAuthTokenManager.cs
│ │ └── packages.config
│ ├── Settings.StyleCop
│ ├── Strict.ruleset
│ ├── System.Net.Http.Formatting/
│ │ ├── ByteRangeStreamContent.cs
│ │ ├── CloneableExtensions.cs
│ │ ├── Formatting/
│ │ │ ├── BaseJsonMediaTypeFormatter.cs
│ │ │ ├── BsonMediaTypeFormatter.cs
│ │ │ ├── BufferedMediaTypeFormatter.cs
│ │ │ ├── ContentNegotiationResult.cs
│ │ │ ├── DefaultContentNegotiator.cs
│ │ │ ├── DelegatingEnumerable.cs
│ │ │ ├── FormDataCollection.cs
│ │ │ ├── FormUrlEncodedJson.cs
│ │ │ ├── FormUrlEncodedMediaTypeFormatter.cs
│ │ │ ├── IContentNegotiator.cs
│ │ │ ├── IFormatterLogger.cs
│ │ │ ├── IRequiredMemberSelector.cs
│ │ │ ├── JsonContractResolver.cs
│ │ │ ├── JsonMediaTypeFormatter.cs
│ │ │ ├── MediaTypeConstants.cs
│ │ │ ├── MediaTypeFormatter.cs
│ │ │ ├── MediaTypeFormatterCollection.cs
│ │ │ ├── MediaTypeFormatterExtensions.cs
│ │ │ ├── MediaTypeFormatterMatch.cs
│ │ │ ├── MediaTypeFormatterMatchRanking.cs
│ │ │ ├── MediaTypeHeaderValueExtensions.cs
│ │ │ ├── MediaTypeHeaderValueRange.cs
│ │ │ ├── MediaTypeMapping.cs
│ │ │ ├── MediaTypeWithQualityHeaderValueComparer.cs
│ │ │ ├── ParsedMediaTypeHeaderValue.cs
│ │ │ ├── Parsers/
│ │ │ │ ├── FormUrlEncodedParser.cs
│ │ │ │ ├── HttpRequestHeaderParser.cs
│ │ │ │ ├── HttpRequestLineParser.cs
│ │ │ │ ├── HttpResponseHeaderParser.cs
│ │ │ │ ├── HttpStatusLineParser.cs
│ │ │ │ ├── InternetMessageFormatHeaderParser.cs
│ │ │ │ ├── MimeMultipartBodyPartParser.cs
│ │ │ │ ├── MimeMultipartParser.cs
│ │ │ │ └── ParserState.cs
│ │ │ ├── QueryStringMapping.cs
│ │ │ ├── RequestHeaderMapping.cs
│ │ │ ├── StringComparisonHelper.cs
│ │ │ ├── StringWithQualityHeaderValueComparer.cs
│ │ │ ├── XmlHttpRequestHeaderMapping.cs
│ │ │ └── XmlMediaTypeFormatter.cs
│ │ ├── FormattingUtilities.cs
│ │ ├── GlobalSuppressions.cs
│ │ ├── Handlers/
│ │ │ ├── HttpProgressEventArgs.cs
│ │ │ ├── ProgressContent.cs
│ │ │ ├── ProgressMessageHandler.cs
│ │ │ ├── ProgressStream.cs
│ │ │ └── ProgressWriteAsyncResult.cs
│ │ ├── Headers/
│ │ │ ├── CookieHeaderValue.cs
│ │ │ └── CookieState.cs
│ │ ├── HttpClientExtensions.cs
│ │ ├── HttpClientFactory.cs
│ │ ├── HttpContentExtensions.cs
│ │ ├── HttpContentFormDataExtensions.cs
│ │ ├── HttpContentMessageExtensions.cs
│ │ ├── HttpContentMultipartExtensions.cs
│ │ ├── HttpHeaderExtensions.cs
│ │ ├── HttpMessageContent.cs
│ │ ├── HttpRequestHeadersExtensions.cs
│ │ ├── HttpRequestMessageExtensions.cs
│ │ ├── HttpResponseHeadersExtensions.cs
│ │ ├── HttpUnsortedHeaders.cs
│ │ ├── HttpUnsortedRequest.cs
│ │ ├── HttpUnsortedResponse.cs
│ │ ├── Internal/
│ │ │ ├── AsyncResult.cs
│ │ │ ├── ByteRangeStream.cs
│ │ │ ├── DelegatingStream.cs
│ │ │ ├── HttpValueCollection.cs
│ │ │ ├── NonClosingDelegatingStream.cs
│ │ │ ├── NullableAttributes.cs
│ │ │ ├── TranscodingStream.cs
│ │ │ └── TypeExtensions.cs
│ │ ├── InvalidByteRangeException.cs
│ │ ├── MimeBodyPart.cs
│ │ ├── MultipartFileData.cs
│ │ ├── MultipartFileStreamProvider.cs
│ │ ├── MultipartFormDataRemoteStreamProvider.cs
│ │ ├── MultipartFormDataStreamProvider.cs
│ │ ├── MultipartFormDataStreamProviderHelper.cs
│ │ ├── MultipartMemoryStreamProvider.cs
│ │ ├── MultipartRelatedStreamProvider.cs
│ │ ├── MultipartRemoteFileData.cs
│ │ ├── MultipartStreamProvider.cs
│ │ ├── ObjectContent.cs
│ │ ├── ObjectContentOfT.cs
│ │ ├── Properties/
│ │ │ ├── AssemblyInfo.cs
│ │ │ ├── Resources.Designer.cs
│ │ │ └── Resources.resx
│ │ ├── PushStreamContent.cs
│ │ ├── RemoteStreamInfo.cs
│ │ ├── System.Net.Http.Formatting.csproj
│ │ ├── UnsupportedMediaTypeException.cs
│ │ ├── UriExtensions.cs
│ │ └── packages.config
│ ├── System.Net.Http.Formatting.ns1_3/
│ │ ├── ICloneable.cs
│ │ ├── MediaTypeHeaderValueExtensions.cs
│ │ └── System.Net.Http.Formatting.ns1_3.csproj
│ ├── System.Net.Http.Formatting.ns2_0/
│ │ └── System.Net.Http.Formatting.ns2_0.csproj
│ ├── System.Web.Cors/
│ │ ├── CorsConstants.cs
│ │ ├── CorsEngine.cs
│ │ ├── CorsPolicy.cs
│ │ ├── CorsRequestContext.cs
│ │ ├── CorsResult.cs
│ │ ├── ICorsEngine.cs
│ │ ├── Properties/
│ │ │ ├── AssemblyInfo.cs
│ │ │ ├── SRResources.Designer.cs
│ │ │ └── SRResources.resx
│ │ └── System.Web.Cors.csproj
│ ├── System.Web.Helpers/
│ │ ├── Chart/
│ │ │ ├── Chart.cs
│ │ │ └── ChartTheme.cs
│ │ ├── Common/
│ │ │ └── VirtualPathUtil.cs
│ │ ├── ConversionUtil.cs
│ │ ├── Crypto.cs
│ │ ├── DynamicHelper.cs
│ │ ├── DynamicJavaScriptConverter.cs
│ │ ├── DynamicJsonArray.cs
│ │ ├── DynamicJsonObject.cs
│ │ ├── GlobalSuppressions.cs
│ │ ├── HtmlElement.cs
│ │ ├── HtmlObjectPrinter.cs
│ │ ├── Json.cs
│ │ ├── ObjectInfo.cs
│ │ ├── ObjectVisitor.cs
│ │ ├── Properties/
│ │ │ └── AssemblyInfo.cs
│ │ ├── Resources/
│ │ │ ├── ChartTemplates.Designer.cs
│ │ │ ├── ChartTemplates.resx
│ │ │ ├── HelpersResources.Designer.cs
│ │ │ └── HelpersResources.resx
│ │ ├── ServerInfo.cs
│ │ ├── SortDirection.cs
│ │ ├── System.Web.Helpers.csproj
│ │ ├── WebCache.cs
│ │ ├── WebGrid/
│ │ │ ├── IWebGridDataSource.cs
│ │ │ ├── PreComputedGridDataSource.cs
│ │ │ ├── SortInfo.cs
│ │ │ ├── WebGrid.cs
│ │ │ ├── WebGridColumn.cs
│ │ │ ├── WebGridDataSource.cs
│ │ │ ├── WebGridPagerModes.cs
│ │ │ ├── WebGridRow.cs
│ │ │ ├── _WebGridRenderer.cshtml
│ │ │ └── _WebGridRenderer.generated.cs
│ │ ├── WebImage.cs
│ │ └── WebMail.cs
│ ├── System.Web.Http/
│ │ ├── AcceptVerbsAttribute.cs
│ │ ├── ActionNameAttribute.cs
│ │ ├── AllowAnonymousAttribute.cs
│ │ ├── ApiController.cs
│ │ ├── AuthorizeAttribute.cs
│ │ ├── Batch/
│ │ │ ├── BatchExecutionOrder.cs
│ │ │ ├── BatchHttpRequestContext.cs
│ │ │ ├── BatchHttpRequestMessageExtensions.cs
│ │ │ ├── DefaultHttpBatchHandler.cs
│ │ │ └── HttpBatchHandler.cs
│ │ ├── Controllers/
│ │ │ ├── ActionFilterResult.cs
│ │ │ ├── ApiControllerActionInvoker.cs
│ │ │ ├── ApiControllerActionSelector.cs
│ │ │ ├── AuthenticationFilterResult.cs
│ │ │ ├── AuthorizationFilterResult.cs
│ │ │ ├── CandidateAction.cs
│ │ │ ├── ExceptionFilterResult.cs
│ │ │ ├── FilterGrouping.cs
│ │ │ ├── HttpActionBinding.cs
│ │ │ ├── HttpActionContext.cs
│ │ │ ├── HttpActionContextExtensions.cs
│ │ │ ├── HttpActionDescriptor.cs
│ │ │ ├── HttpActionDescriptorExtensions.cs
│ │ │ ├── HttpControllerContext.cs
│ │ │ ├── HttpControllerDescriptor.cs
│ │ │ ├── HttpControllerDescriptorExtensions.cs
│ │ │ ├── HttpControllerSettings.cs
│ │ │ ├── HttpParameterBinding.cs
│ │ │ ├── HttpParameterDescriptor.cs
│ │ │ ├── HttpParameterDescriptorExtensions.cs
│ │ │ ├── HttpRequestContext.cs
│ │ │ ├── IActionHttpMethodProvider.cs
│ │ │ ├── IActionResultConverter.cs
│ │ │ ├── IActionValueBinder.cs
│ │ │ ├── IControllerConfiguration.cs
│ │ │ ├── IHttpActionInvoker.cs
│ │ │ ├── IHttpActionSelector.cs
│ │ │ ├── IHttpController.cs
│ │ │ ├── ReflectedHttpActionDescriptor.cs
│ │ │ ├── ReflectedHttpParameterDescriptor.cs
│ │ │ ├── RequestBackedHttpRequestContext.cs
│ │ │ ├── ResponseMessageResultConverter.cs
│ │ │ ├── ValueResultConverter.cs
│ │ │ └── VoidResultConverter.cs
│ │ ├── Dependencies/
│ │ │ ├── EmptyResolver.cs
│ │ │ ├── IDependencyResolver.cs
│ │ │ └── IDependencyScope.cs
│ │ ├── Description/
│ │ │ ├── ApiDescription.cs
│ │ │ ├── ApiExplorer.cs
│ │ │ ├── ApiExplorerSettingsAttribute.cs
│ │ │ ├── ApiParameterDescription.cs
│ │ │ ├── ApiParameterSource.cs
│ │ │ ├── IApiExplorer.cs
│ │ │ ├── IDocumentationProvider.cs
│ │ │ ├── ResponseDescription.cs
│ │ │ └── ResponseTypeAttribute.cs
│ │ ├── Dispatcher/
│ │ │ ├── DefaultAssembliesResolver.cs
│ │ │ ├── DefaultHttpControllerActivator.cs
│ │ │ ├── DefaultHttpControllerSelector.cs
│ │ │ ├── DefaultHttpControllerTypeResolver.cs
│ │ │ ├── HttpControllerDispatcher.cs
│ │ │ ├── HttpControllerTypeCache.cs
│ │ │ ├── HttpRoutingDispatcher.cs
│ │ │ ├── IAssembliesResolver.cs
│ │ │ ├── IHttpControllerActivator.cs
│ │ │ ├── IHttpControllerSelector.cs
│ │ │ └── IHttpControllerTypeResolver.cs
│ │ ├── EmptyReadOnlyDictionary.cs
│ │ ├── ExceptionHandling/
│ │ │ ├── CompositeExceptionLogger.cs
│ │ │ ├── DefaultExceptionHandler.cs
│ │ │ ├── EmptyExceptionHandler.cs
│ │ │ ├── ExceptionCatchBlocks.cs
│ │ │ ├── ExceptionContext.cs
│ │ │ ├── ExceptionContextCatchBlock.cs
│ │ │ ├── ExceptionHandler.cs
│ │ │ ├── ExceptionHandlerContext.cs
│ │ │ ├── ExceptionHandlerExtensions.cs
│ │ │ ├── ExceptionLogger.cs
│ │ │ ├── ExceptionLoggerContext.cs
│ │ │ ├── ExceptionLoggerExtensions.cs
│ │ │ ├── ExceptionServices.cs
│ │ │ ├── IExceptionHandler.cs
│ │ │ ├── IExceptionLogger.cs
│ │ │ └── LastChanceExceptionHandler.cs
│ │ ├── Filters/
│ │ │ ├── ActionDescriptorFilterProvider.cs
│ │ │ ├── ActionFilterAttribute.cs
│ │ │ ├── AuthorizationFilterAttribute.cs
│ │ │ ├── ConfigurationFilterProvider.cs
│ │ │ ├── ExceptionFilterAttribute.cs
│ │ │ ├── FilterAttribute.cs
│ │ │ ├── FilterInfo.cs
│ │ │ ├── FilterInfoComparer.cs
│ │ │ ├── FilterScope.cs
│ │ │ ├── HttpActionExecutedContext.cs
│ │ │ ├── HttpAuthenticationChallengeContext.cs
│ │ │ ├── HttpAuthenticationContext.cs
│ │ │ ├── HttpFilterCollection.cs
│ │ │ ├── IActionFilter.cs
│ │ │ ├── IAuthenticationFilter.cs
│ │ │ ├── IAuthorizationFilter.cs
│ │ │ ├── IExceptionFilter.cs
│ │ │ ├── IFilter.cs
│ │ │ ├── IFilterProvider.cs
│ │ │ └── IOverrideFilter.cs
│ │ ├── FromBodyAttribute.cs
│ │ ├── FromUriAttribute.cs
│ │ ├── GlobalSuppressions.cs
│ │ ├── Hosting/
│ │ │ ├── HttpPropertyKeys.cs
│ │ │ ├── IHostBufferPolicySelector.cs
│ │ │ └── SuppressHostPrincipalMessageHandler.cs
│ │ ├── HttpBindNeverAttribute.cs
│ │ ├── HttpBindRequiredAttribute.cs
│ │ ├── HttpConfiguration.cs
│ │ ├── HttpConfigurationExtensions.cs
│ │ ├── HttpDeleteAttribute.cs
│ │ ├── HttpError.cs
│ │ ├── HttpErrorKeys.cs
│ │ ├── HttpGetAttribute.cs
│ │ ├── HttpHeadAttribute.cs
│ │ ├── HttpOptionsAttribute.cs
│ │ ├── HttpPatchAttribute.cs
│ │ ├── HttpPostAttribute.cs
│ │ ├── HttpPutAttribute.cs
│ │ ├── HttpRequestMessageExtensions.cs
│ │ ├── HttpResponseException.cs
│ │ ├── HttpResponseMessageExtensions.cs
│ │ ├── HttpRouteCollection.cs
│ │ ├── HttpRouteCollectionExtensions.cs
│ │ ├── HttpServer.cs
│ │ ├── IHttpActionResult.cs
│ │ ├── IncludeErrorDetailPolicy.cs
│ │ ├── Internal/
│ │ │ ├── CollectionModelBinderUtil.cs
│ │ │ ├── HttpParameterBindingExtensions.cs
│ │ │ ├── MemberInfoExtensions.cs
│ │ │ ├── ParameterInfoExtensions.cs
│ │ │ ├── TypeActivator.cs
│ │ │ ├── TypeDescriptorHelper.cs
│ │ │ └── TypeHelper.cs
│ │ ├── Metadata/
│ │ │ ├── ModelMetadata.cs
│ │ │ ├── ModelMetadataProvider.cs
│ │ │ └── Providers/
│ │ │ ├── AssociatedMetadataProvider.cs
│ │ │ ├── CachedDataAnnotationsMetadataAttributes.cs
│ │ │ ├── CachedDataAnnotationsModelMetadata.cs
│ │ │ ├── CachedModelMetadata.cs
│ │ │ ├── DataAnnotationsModelMetadataProvider.cs
│ │ │ └── EmptyMetadataProvider.cs
│ │ ├── ModelBinding/
│ │ │ ├── Binders/
│ │ │ │ ├── ArrayModelBinder.cs
│ │ │ │ ├── ArrayModelBinderProvider.cs
│ │ │ │ ├── CollectionModelBinder.cs
│ │ │ │ ├── CollectionModelBinderProvider.cs
│ │ │ │ ├── ComplexModelDto.cs
│ │ │ │ ├── ComplexModelDtoModelBinder.cs
│ │ │ │ ├── ComplexModelDtoModelBinderProvider.cs
│ │ │ │ ├── ComplexModelDtoResult.cs
│ │ │ │ ├── CompositeModelBinder.cs
│ │ │ │ ├── CompositeModelBinderProvider.cs
│ │ │ │ ├── DictionaryModelBinder.cs
│ │ │ │ ├── DictionaryModelBinderProvider.cs
│ │ │ │ ├── KeyValuePairModelBinder.cs
│ │ │ │ ├── KeyValuePairModelBinderProvider.cs
│ │ │ │ ├── MutableObjectModelBinder.cs
│ │ │ │ ├── MutableObjectModelBinderProvider.cs
│ │ │ │ ├── SimpleModelBinderProvider.cs
│ │ │ │ ├── TypeConverterModelBinder.cs
│ │ │ │ ├── TypeConverterModelBinderProvider.cs
│ │ │ │ ├── TypeMatchModelBinder.cs
│ │ │ │ └── TypeMatchModelBinderProvider.cs
│ │ │ ├── CancellationTokenParameterBinding.cs
│ │ │ ├── CustomModelBinderAttribute.cs
│ │ │ ├── DefaultActionValueBinder.cs
│ │ │ ├── ErrorParameterBinding.cs
│ │ │ ├── FormDataCollectionExtensions.cs
│ │ │ ├── FormatterParameterBinding.cs
│ │ │ ├── HttpBindingBehavior.cs
│ │ │ ├── HttpBindingBehaviorAttribute.cs
│ │ │ ├── HttpRequestParameterBinding.cs
│ │ │ ├── IModelBinder.cs
│ │ │ ├── IValueProviderParameterBinding.cs
│ │ │ ├── JQueryMVCFormUrlEncodedFormatter.cs
│ │ │ ├── ModelBinderAttribute.cs
│ │ │ ├── ModelBinderConfig.cs
│ │ │ ├── ModelBinderErrorMessageProvider.cs
│ │ │ ├── ModelBinderParameterBinding.cs
│ │ │ ├── ModelBinderProvider.cs
│ │ │ ├── ModelBindingContext.cs
│ │ │ ├── ModelBindingHelper.cs
│ │ │ ├── ModelError.cs
│ │ │ ├── ModelErrorCollection.cs
│ │ │ ├── ModelState.cs
│ │ │ ├── ModelStateDictionary.cs
│ │ │ └── ParameterBindingRulesCollection.cs
│ │ ├── NonActionAttribute.cs
│ │ ├── OverrideActionFiltersAttribute.cs
│ │ ├── OverrideAuthenticationAttribute.cs
│ │ ├── OverrideAuthorizationAttribute.cs
│ │ ├── OverrideExceptionFiltersAttribute.cs
│ │ ├── ParameterBindingAttribute.cs
│ │ ├── Properties/
│ │ │ ├── AssemblyInfo.cs
│ │ │ ├── SRResources.Designer.cs
│ │ │ └── SRResources.resx
│ │ ├── Results/
│ │ │ ├── BadRequestErrorMessageResult.cs
│ │ │ ├── BadRequestResult.cs
│ │ │ ├── ConflictResult.cs
│ │ │ ├── CreatedAtRouteNegotiatedContentResult.cs
│ │ │ ├── CreatedNegotiatedContentResult.cs
│ │ │ ├── ExceptionResult.cs
│ │ │ ├── FormattedContentResult.cs
│ │ │ ├── InternalServerErrorResult.cs
│ │ │ ├── InvalidModelStateResult.cs
│ │ │ ├── JsonResult.cs
│ │ │ ├── NegotiatedContentResult.cs
│ │ │ ├── NotFoundResult.cs
│ │ │ ├── OkNegotiatedContentResult.cs
│ │ │ ├── OkResult.cs
│ │ │ ├── RedirectResult.cs
│ │ │ ├── RedirectToRouteResult.cs
│ │ │ ├── ResponseMessageResult.cs
│ │ │ ├── StatusCodeResult.cs
│ │ │ └── UnauthorizedResult.cs
│ │ ├── RouteAttribute.cs
│ │ ├── RouteParameter.cs
│ │ ├── RoutePrefixAttribute.cs
│ │ ├── Routing/
│ │ │ ├── AttributeRoutingMapper.cs
│ │ │ ├── BoundRouteTemplate.cs
│ │ │ ├── DefaultDirectRouteProvider.cs
│ │ │ ├── HttpMethodConstraint.cs
│ │ │ ├── HttpParsedRoute.cs
│ │ │ ├── HttpRoute.cs
│ │ │ ├── HttpRouteData.cs
│ │ │ ├── HttpRouteDataExtensions.cs
│ │ │ ├── HttpRouteDirection.cs
│ │ │ ├── HttpRouteExtensions.cs
│ │ │ ├── HttpRouteValueDictionary.cs
│ │ │ ├── HttpVirtualPathData.cs
│ │ │ ├── IHttpRoute.cs
│ │ │ ├── IHttpRouteConstraint.cs
│ │ │ ├── IHttpRouteData.cs
│ │ │ ├── IHttpRouteInfoProvider.cs
│ │ │ ├── IHttpVirtualPathData.cs
│ │ │ ├── LinkGenerationRoute.cs
│ │ │ ├── MediaTypeFormatterExtensions.cs
│ │ │ ├── RouteCollectionRoute.cs
│ │ │ ├── RouteDataTokenKeys.cs
│ │ │ ├── RouteValueKeys.cs
│ │ │ ├── RoutingContext.cs
│ │ │ ├── StopRoutingHandler.cs
│ │ │ ├── UriPathExtensionMapping.cs
│ │ │ └── UrlHelper.cs
│ │ ├── Services/
│ │ │ ├── ControllerServices.cs
│ │ │ ├── Decorator.cs
│ │ │ ├── DefaultServices.cs
│ │ │ ├── IDecorator.cs
│ │ │ └── ServicesContainer.cs
│ │ ├── ServicesExtensions.cs
│ │ ├── SingleResult.cs
│ │ ├── SingleResultOfT.cs
│ │ ├── System.Web.Http.csproj
│ │ ├── Tracing/
│ │ │ ├── FormattingUtilities.cs
│ │ │ ├── IFormatterTracer.cs
│ │ │ ├── ITraceManager.cs
│ │ │ ├── ITraceWriter.cs
│ │ │ ├── ITraceWriterExtensions.cs
│ │ │ ├── TraceCategories.cs
│ │ │ ├── TraceKind.cs
│ │ │ ├── TraceKindHelper.cs
│ │ │ ├── TraceLevel.cs
│ │ │ ├── TraceLevelHelper.cs
│ │ │ ├── TraceManager.cs
│ │ │ ├── TraceRecord.cs
│ │ │ └── Tracers/
│ │ │ ├── ActionFilterAttributeTracer.cs
│ │ │ ├── ActionFilterTracer.cs
│ │ │ ├── ActionValueBinderTracer.cs
│ │ │ ├── AuthenticationFilterTracer.cs
│ │ │ ├── AuthorizationFilterAttributeTracer.cs
│ │ │ ├── AuthorizationFilterTracer.cs
│ │ │ ├── BufferedMediaTypeFormatterTracer.cs
│ │ │ ├── ContentNegotiatorTracer.cs
│ │ │ ├── DefaultHttpControllerTypeResolverTracer.cs
│ │ │ ├── ExceptionFilterAttributeTracer.cs
│ │ │ ├── ExceptionFilterTracer.cs
│ │ │ ├── FilterTracer.cs
│ │ │ ├── FormUrlEncodedMediaTypeFormatterTracer.cs
│ │ │ ├── FormatterLoggerTraceWrapper.cs
│ │ │ ├── FormatterParameterBindingTracer.cs
│ │ │ ├── HttpActionBindingTracer.cs
│ │ │ ├── HttpActionDescriptorTracer.cs
│ │ │ ├── HttpActionInvokerTracer.cs
│ │ │ ├── HttpActionSelectorTracer.cs
│ │ │ ├── HttpControllerActivatorTracer.cs
│ │ │ ├── HttpControllerDescriptorTracer.cs
│ │ │ ├── HttpControllerSelectorTracer.cs
│ │ │ ├── HttpControllerTracer.cs
│ │ │ ├── HttpParameterBindingTracer.cs
│ │ │ ├── JsonMediaTypeFormatterTracer.cs
│ │ │ ├── MediaTypeFormatterTracer.cs
│ │ │ ├── MessageHandlerTracer.cs
│ │ │ ├── OverrideFilterTracer.cs
│ │ │ ├── RequestMessageHandlerTracer.cs
│ │ │ └── XmlMediaTypeFormatterTracer.cs
│ │ ├── Validation/
│ │ │ ├── BodyModelValidatorContext.cs
│ │ │ ├── DefaultBodyModelValidator.cs
│ │ │ ├── IBodyModelValidator.cs
│ │ │ ├── IBodyModelValidatorKeyBuilder.cs
│ │ │ ├── IModelValidatorCache.cs
│ │ │ ├── ModelStateFormatterLogger.cs
│ │ │ ├── ModelValidatedEventArgs.cs
│ │ │ ├── ModelValidatingEventArgs.cs
│ │ │ ├── ModelValidationNode.cs
│ │ │ ├── ModelValidationRequiredMemberSelector.cs
│ │ │ ├── ModelValidationResult.cs
│ │ │ ├── ModelValidator.cs
│ │ │ ├── ModelValidatorCache.cs
│ │ │ ├── ModelValidatorProvider.cs
│ │ │ ├── Providers/
│ │ │ │ ├── AssociatedValidatorProvider.cs
│ │ │ │ ├── DataAnnotationsModelValidatorProvider.cs
│ │ │ │ ├── DataMemberModelValidatorProvider.cs
│ │ │ │ ├── InvalidModelValidatorProvider.cs
│ │ │ │ └── RequiredMemberModelValidatorProvider.cs
│ │ │ ├── ReferenceEqualityComparer.cs
│ │ │ └── Validators/
│ │ │ ├── DataAnnotationsModelValidator.cs
│ │ │ ├── ErrorModelValidator.cs
│ │ │ ├── RequiredMemberModelValidator.cs
│ │ │ └── ValidatableObjectAdapter.cs
│ │ ├── ValueProviders/
│ │ │ ├── IEnumerableValueProvider.cs
│ │ │ ├── IUriValueProviderFactory.cs
│ │ │ ├── IValueProvider.cs
│ │ │ ├── Providers/
│ │ │ │ ├── CompositeValueProvider.cs
│ │ │ │ ├── CompositeValueProviderFactory.cs
│ │ │ │ ├── ElementalValueProvider.cs
│ │ │ │ ├── NameValuePairsValueProvider.cs
│ │ │ │ ├── QueryStringValueProvider.cs
│ │ │ │ ├── QueryStringValueProviderFactory.cs
│ │ │ │ ├── RouteDataValueProvider.cs
│ │ │ │ └── RouteDataValueProviderFactory.cs
│ │ │ ├── ValueProviderAttribute.cs
│ │ │ ├── ValueProviderFactory.cs
│ │ │ └── ValueProviderResult.cs
│ │ └── packages.config
│ ├── System.Web.Http.Cors/
│ │ ├── AttributeBasedPolicyProviderFactory.cs
│ │ ├── CorsHttpConfigurationExtensions.cs
│ │ ├── CorsHttpRequestMessageExtensions.cs
│ │ ├── CorsHttpResponseMessageExtensions.cs
│ │ ├── CorsMessageHandler.cs
│ │ ├── DisableCorsAttribute.cs
│ │ ├── EnableCorsAttribute.cs
│ │ ├── ICorsPolicyProvider.cs
│ │ ├── ICorsPolicyProviderFactory.cs
│ │ ├── Properties/
│ │ │ ├── AssemblyInfo.cs
│ │ │ ├── SRResources.Designer.cs
│ │ │ └── SRResources.resx
│ │ ├── System.Web.Http.Cors.csproj
│ │ └── Tracing/
│ │ ├── CorsEngineTracer.cs
│ │ ├── CorsPolicyProviderFactoryTracer.cs
│ │ ├── CorsPolicyProviderTracer.cs
│ │ └── TraceCategories.cs
│ ├── System.Web.Http.Owin/
│ │ ├── ExceptionHandling/
│ │ │ ├── DefaultExceptionHandler.cs
│ │ │ └── EmptyExceptionLogger.cs
│ │ ├── GlobalSuppressions.cs
│ │ ├── HostAuthenticationAttribute.cs
│ │ ├── HostAuthenticationFilter.cs
│ │ ├── HttpMessageHandlerAdapter.cs
│ │ ├── HttpMessageHandlerOptions.cs
│ │ ├── OwinBufferPolicySelector.cs
│ │ ├── OwinConstants.cs
│ │ ├── OwinExceptionCatchBlocks.cs
│ │ ├── OwinHttpConfigurationExtensions.cs
│ │ ├── OwinHttpRequestContext.cs
│ │ ├── OwinHttpRequestMessageExtensions.cs
│ │ ├── OwinRequestExtensions.cs
│ │ ├── OwinResponseExtensions.cs
│ │ ├── PassiveAuthenticationMessageHandler.cs
│ │ ├── Properties/
│ │ │ ├── AssemblyInfo.cs
│ │ │ ├── OwinResources.Designer.cs
│ │ │ └── OwinResources.resx
│ │ ├── System.Web.Http.Owin.csproj
│ │ ├── WebApiAppBuilderExtensions.cs
│ │ └── packages.config
│ ├── System.Web.Http.SelfHost/
│ │ ├── Channels/
│ │ │ ├── HttpBinding.cs
│ │ │ ├── HttpBindingSecurity.cs
│ │ │ ├── HttpBindingSecurityMode.cs
│ │ │ ├── HttpBindingSecurityModeHelper.cs
│ │ │ ├── HttpMessage.cs
│ │ │ ├── HttpMessageEncoderFactory.cs
│ │ │ ├── HttpMessageEncodingBindingElement.cs
│ │ │ ├── HttpMessageEncodingChannelListener.cs
│ │ │ ├── HttpMessageEncodingReplyChannel.cs
│ │ │ ├── HttpMessageEncodingRequestContext.cs
│ │ │ └── HttpMessageExtensions.cs
│ │ ├── GlobalSuppressions.cs
│ │ ├── HttpRequestMessageExtensions.cs
│ │ ├── HttpSelfHostConfiguration.cs
│ │ ├── HttpSelfHostServer.cs
│ │ ├── Properties/
│ │ │ ├── AssemblyInfo.cs
│ │ │ ├── SRResources.Designer.cs
│ │ │ └── SRResources.resx
│ │ ├── SelfHostHttpRequestContext.cs
│ │ ├── ServiceModel/
│ │ │ ├── Channels/
│ │ │ │ ├── AsyncResult.cs
│ │ │ │ ├── BufferManagerOutputStream.cs
│ │ │ │ ├── BufferedOutputStream.cs
│ │ │ │ ├── ChannelAcceptor.cs
│ │ │ │ ├── ChannelBindingUtility.cs
│ │ │ │ ├── CompletedAsyncResult.cs
│ │ │ │ ├── CompletedAsyncResultOfT.cs
│ │ │ │ ├── HttpTransportDefaults.cs
│ │ │ │ ├── IChannelAcceptor.cs
│ │ │ │ ├── LayeredChannel.cs
│ │ │ │ ├── LayeredChannelAcceptor.cs
│ │ │ │ ├── LayeredChannelListener.cs
│ │ │ │ └── TransportDefaults.cs
│ │ │ ├── HostNameComparisonModeHelper.cs
│ │ │ ├── HttpClientCredentialTypeHelper.cs
│ │ │ ├── HttpProxyCredentialTypeHelper.cs
│ │ │ ├── HttpTransportSecurityExtensionMethods.cs
│ │ │ └── TransferModeHelper.cs
│ │ └── System.Web.Http.SelfHost.csproj
│ ├── System.Web.Http.SignalR/
│ │ ├── GlobalSuppressions.cs
│ │ ├── HubController.cs
│ │ ├── HubControllerBase.cs
│ │ ├── HubControllerOfTHub.cs
│ │ ├── Properties/
│ │ │ ├── AssemblyInfo.cs
│ │ │ ├── SRResources.Designer.cs
│ │ │ └── SRResources.resx
│ │ ├── System.Web.Http.SignalR.csproj
│ │ └── packages.config
│ ├── System.Web.Http.Tracing/
│ │ ├── GlobalSuppressions.cs
│ │ ├── HttpConfigurationExtensions.cs
│ │ ├── Properties/
│ │ │ ├── AssemblyInfo.cs
│ │ │ ├── SRResources.Designer.cs
│ │ │ └── SRResources.resx
│ │ ├── System.Web.Http.Tracing.csproj
│ │ ├── SystemDiagnosticsTraceWriter.cs
│ │ └── packages.config
│ ├── System.Web.Http.WebHost/
│ │ ├── GlobalConfiguration.cs
│ │ ├── GlobalSuppressions.cs
│ │ ├── HttpBatchContextWrapper.cs
│ │ ├── HttpControllerHandler.cs
│ │ ├── HttpControllerRouteHandler.cs
│ │ ├── HttpControllerTypeCacheSerializer.cs
│ │ ├── HttpRequestMessageExtensions.cs
│ │ ├── HttpResponseBaseExtensions.cs
│ │ ├── PreApplicationStartCode.cs
│ │ ├── Properties/
│ │ │ ├── AssemblyInfo.cs
│ │ │ ├── SRResources.Designer.cs
│ │ │ └── SRResources.resx
│ │ ├── RouteCollectionExtensions.cs
│ │ ├── Routing/
│ │ │ ├── HostedHttpRoute.cs
│ │ │ ├── HostedHttpRouteCollection.cs
│ │ │ ├── HostedHttpRouteData.cs
│ │ │ ├── HostedHttpVirtualPathData.cs
│ │ │ ├── HttpContextBaseExtensions.cs
│ │ │ ├── HttpRequestMessageContextWrapper.cs
│ │ │ ├── HttpRequestMessageWrapper.cs
│ │ │ ├── HttpRouteDataExtensions.cs
│ │ │ ├── HttpRouteExceptionHandler.cs
│ │ │ ├── HttpRouteExceptionRouteHandler.cs
│ │ │ ├── HttpRouteExtensions.cs
│ │ │ └── HttpWebRoute.cs
│ │ ├── SeekableBufferedRequestStream.cs
│ │ ├── SuppressFormsAuthRedirectHelper.cs
│ │ ├── System.Web.Http.WebHost.csproj
│ │ ├── TaskWrapperAsyncResult.cs
│ │ ├── WebHostAssembliesResolver.cs
│ │ ├── WebHostBufferPolicySelector.cs
│ │ ├── WebHostExceptionCatchBlocks.cs
│ │ ├── WebHostExceptionHandler.cs
│ │ ├── WebHostHttpControllerTypeResolver.cs
│ │ ├── WebHostHttpRequestContext.cs
│ │ └── packages.config
│ ├── System.Web.Mvc/
│ │ ├── AcceptVerbsAttribute.cs
│ │ ├── ActionDescriptor.cs
│ │ ├── ActionDescriptorHelper.cs
│ │ ├── ActionExecutedContext.cs
│ │ ├── ActionExecutingContext.cs
│ │ ├── ActionFilterAttribute.cs
│ │ ├── ActionMethodDispatcher.cs
│ │ ├── ActionMethodDispatcherCache.cs
│ │ ├── ActionMethodSelector.cs
│ │ ├── ActionMethodSelectorAttribute.cs
│ │ ├── ActionMethodSelectorBase.cs
│ │ ├── ActionNameAttribute.cs
│ │ ├── ActionNameSelector.cs
│ │ ├── ActionNameSelectorAttribute.cs
│ │ ├── ActionResult.cs
│ │ ├── ActionSelector.cs
│ │ ├── AdditionalMetaDataAttribute.cs
│ │ ├── Ajax/
│ │ │ ├── AjaxExtensions.cs
│ │ │ ├── AjaxOptions.cs
│ │ │ └── InsertionMode.cs
│ │ ├── AjaxHelper.cs
│ │ ├── AjaxHelperOfTModel.cs
│ │ ├── AjaxRequestExtensions.cs
│ │ ├── AllowAnonymousAttribute.cs
│ │ ├── AllowHtmlAttribute.cs
│ │ ├── AreaHelpers.cs
│ │ ├── AreaReference.cs
│ │ ├── AreaRegistration.cs
│ │ ├── AreaRegistrationContext.cs
│ │ ├── AssociatedMetadataProvider.cs
│ │ ├── AssociatedValidatorProvider.cs
│ │ ├── Async/
│ │ │ ├── ActionDescriptorCreator.cs
│ │ │ ├── AsyncActionDescriptor.cs
│ │ │ ├── AsyncActionMethodSelector.cs
│ │ │ ├── AsyncControllerActionInvoker.cs
│ │ │ ├── AsyncManager.cs
│ │ │ ├── AsyncResultWrapper.cs
│ │ │ ├── AsyncVoid.cs
│ │ │ ├── BeginInvokeDelegate.cs
│ │ │ ├── BeginInvokeDelegateOfTState.cs
│ │ │ ├── EndInvokeDelegateOfTResult.cs
│ │ │ ├── EndInvokeDelegateOfTResultTState.cs
│ │ │ ├── EndInvokeVoidDelegate.cs
│ │ │ ├── IAsyncActionInvoker.cs
│ │ │ ├── IAsyncActionInvokerFactory.cs
│ │ │ ├── IAsyncController.cs
│ │ │ ├── IAsyncManagerContainer.cs
│ │ │ ├── OperationCounter.cs
│ │ │ ├── ReflectedAsyncActionDescriptor.cs
│ │ │ ├── ReflectedAsyncControllerDescriptor.cs
│ │ │ ├── SimpleAsyncResult.cs
│ │ │ ├── SingleEntryGate.cs
│ │ │ ├── SynchronizationContextUtil.cs
│ │ │ ├── SynchronousOperationException.cs
│ │ │ ├── TaskAsyncActionDescriptor.cs
│ │ │ ├── TaskWrapperAsyncResult.cs
│ │ │ ├── Trigger.cs
│ │ │ └── TriggerListener.cs
│ │ ├── AsyncController.cs
│ │ ├── AsyncTimeoutAttribute.cs
│ │ ├── AuthorizationContext.cs
│ │ ├── AuthorizeAttribute.cs
│ │ ├── BindAttribute.cs
│ │ ├── BuildManagerCompiledView.cs
│ │ ├── BuildManagerViewEngine.cs
│ │ ├── BuildManagerWrapper.cs
│ │ ├── ByteArrayModelBinder.cs
│ │ ├── CachedAssociatedMetadataProvider.cs
│ │ ├── CachedDataAnnotationsMetadataAttributes.cs
│ │ ├── CachedDataAnnotationsModelMetadata.cs
│ │ ├── CachedDataAnnotationsModelMetadataProvider.cs
│ │ ├── CachedModelMetadata.cs
│ │ ├── CancellationTokenModelBinder.cs
│ │ ├── ChildActionOnlyAttribute.cs
│ │ ├── ChildActionValueProvider.cs
│ │ ├── ChildActionValueProviderFactory.cs
│ │ ├── ClientDataTypeModelValidatorProvider.cs
│ │ ├── CompareAttribute.cs
│ │ ├── CompareAttributeAdapter.cs
│ │ ├── ContentResult.cs
│ │ ├── Controller.cs
│ │ ├── ControllerActionInvoker.cs
│ │ ├── ControllerBase.cs
│ │ ├── ControllerBuilder.cs
│ │ ├── ControllerContext.cs
│ │ ├── ControllerDescriptor.cs
│ │ ├── ControllerDescriptorCache.cs
│ │ ├── ControllerDescriptorExtensions.cs
│ │ ├── ControllerInstanceFilterProvider.cs
│ │ ├── ControllerTypeCache.cs
│ │ ├── CopyOnWriteDictionary.cs
│ │ ├── CustomModelBinderAttribute.cs
│ │ ├── DataAnnotationsModelMetadata.cs
│ │ ├── DataAnnotationsModelMetadataProvider.cs
│ │ ├── DataAnnotationsModelValidator.cs
│ │ ├── DataAnnotationsModelValidatorOfTAttribute.cs
│ │ ├── DataAnnotationsModelValidatorProvider.cs
│ │ ├── DataErrorInfoModelValidatorProvider.cs
│ │ ├── DataTypeAttributeAdapter.cs
│ │ ├── DataTypeUtil.cs
│ │ ├── DefaultControllerFactory.cs
│ │ ├── DefaultModelBinder.cs
│ │ ├── DefaultViewLocationCache.cs
│ │ ├── DependencyResolver.cs
│ │ ├── DependencyResolverExtensions.cs
│ │ ├── DescriptorUtil.cs
│ │ ├── DictionaryHelpers.cs
│ │ ├── DictionaryValueProvider.cs
│ │ ├── DynamicViewDataDictionary.cs
│ │ ├── EmptyModelMetadataProvider.cs
│ │ ├── EmptyModelValidatorProvider.cs
│ │ ├── EmptyResult.cs
│ │ ├── Error.cs
│ │ ├── ExceptionContext.cs
│ │ ├── ExpressionHelper.cs
│ │ ├── ExpressionUtil/
│ │ │ ├── BinaryExpressionFingerprint.cs
│ │ │ ├── CachedExpressionCompiler.cs
│ │ │ ├── ConditionalExpressionFingerprint.cs
│ │ │ ├── ConstantExpressionFingerprint.cs
│ │ │ ├── DefaultExpressionFingerprint.cs
│ │ │ ├── ExpressionFingerprint.cs
│ │ │ ├── ExpressionFingerprintChain.cs
│ │ │ ├── FingerprintingExpressionVisitor.cs
│ │ │ ├── HashCodeCombiner.cs
│ │ │ ├── Hoisted.cs
│ │ │ ├── HoistingExpressionVisitor.cs
│ │ │ ├── IndexExpressionFingerprint.cs
│ │ │ ├── LambdaExpressionFingerprint.cs
│ │ │ ├── MemberExpressionFingerprint.cs
│ │ │ ├── MethodCallExpressionFingerprint.cs
│ │ │ ├── ParameterExpressionFingerprint.cs
│ │ │ ├── TypeBinaryExpressionFingerprint.cs
│ │ │ └── UnaryExpressionFingerprint.cs
│ │ ├── FieldValidationMetadata.cs
│ │ ├── FileContentResult.cs
│ │ ├── FileExtensionsAttributeAdapter.cs
│ │ ├── FilePathResult.cs
│ │ ├── FileResult.cs
│ │ ├── FileStreamResult.cs
│ │ ├── Filter.cs
│ │ ├── FilterAttribute.cs
│ │ ├── FilterAttributeFilterProvider.cs
│ │ ├── FilterInfo.cs
│ │ ├── FilterProviderCollection.cs
│ │ ├── FilterProviders.cs
│ │ ├── FilterScope.cs
│ │ ├── Filters/
│ │ │ ├── AuthenticationChallengeContext.cs
│ │ │ ├── AuthenticationContext.cs
│ │ │ ├── IAuthenticationFilter.cs
│ │ │ └── IOverrideFilter.cs
│ │ ├── FormCollection.cs
│ │ ├── FormContext.cs
│ │ ├── FormMethod.cs
│ │ ├── FormValueProvider.cs
│ │ ├── FormValueProviderFactory.cs
│ │ ├── GlobalFilterCollection.cs
│ │ ├── GlobalFilters.cs
│ │ ├── GlobalSuppressions.cs
│ │ ├── HandleErrorAttribute.cs
│ │ ├── HandleErrorInfo.cs
│ │ ├── HiddenInputAttribute.cs
│ │ ├── Html/
│ │ │ ├── ChildActionExtensions.cs
│ │ │ ├── DefaultDisplayTemplates.cs
│ │ │ ├── DefaultEditorTemplates.cs
│ │ │ ├── DisplayExtensions.cs
│ │ │ ├── DisplayNameExtensions.cs
│ │ │ ├── DisplayTextExtensions.cs
│ │ │ ├── EditorExtensions.cs
│ │ │ ├── EnumHelper.cs
│ │ │ ├── FormExtensions.cs
│ │ │ ├── InputExtensions.cs
│ │ │ ├── LabelExtensions.cs
│ │ │ ├── LinkExtensions.cs
│ │ │ ├── MvcForm.cs
│ │ │ ├── NameExtensions.cs
│ │ │ ├── PartialExtensions.cs
│ │ │ ├── RenderPartialExtensions.cs
│ │ │ ├── SelectExtensions.cs
│ │ │ ├── TemplateHelpers.cs
│ │ │ ├── TextAreaExtensions.cs
│ │ │ ├── ValidationExtensions.cs
│ │ │ └── ValueExtensions.cs
│ │ ├── Html5DateRenderingMode.cs
│ │ ├── HtmlHelper.cs
│ │ ├── HtmlHelperOfTModel.cs
│ │ ├── HttpDeleteAttribute.cs
│ │ ├── HttpFileCollectionValueProvider.cs
│ │ ├── HttpFileCollectionValueProviderFactory.cs
│ │ ├── HttpGetAttribute.cs
│ │ ├── HttpHandlerUtil.cs
│ │ ├── HttpHeadAttribute.cs
│ │ ├── HttpNotFoundResult.cs
│ │ ├── HttpOptionsAttribute.cs
│ │ ├── HttpPatchAttribute.cs
│ │ ├── HttpPostAttribute.cs
│ │ ├── HttpPostedFileBaseModelBinder.cs
│ │ ├── HttpPutAttribute.cs
│ │ ├── HttpRequestExtensions.cs
│ │ ├── HttpStatusCodeResult.cs
│ │ ├── HttpUnauthorizedResult.cs
│ │ ├── HttpVerbs.cs
│ │ ├── IActionFilter.cs
│ │ ├── IActionInvoker.cs
│ │ ├── IActionInvokerFactory.cs
│ │ ├── IAuthorizationFilter.cs
│ │ ├── IBuildManager.cs
│ │ ├── IClientValidatable.cs
│ │ ├── IController.cs
│ │ ├── IControllerActivator.cs
│ │ ├── IControllerFactory.cs
│ │ ├── IDependencyResolver.cs
│ │ ├── IEnumerableValueProvider.cs
│ │ ├── IExceptionFilter.cs
│ │ ├── IFilterProvider.cs
│ │ ├── IMetadataAware.cs
│ │ ├── IMethodInfoActionDescriptor.cs
│ │ ├── IModelBinder.cs
│ │ ├── IModelBinderProvider.cs
│ │ ├── IMvcControlBuilder.cs
│ │ ├── IMvcFilter.cs
│ │ ├── IResolver.cs
│ │ ├── IResultFilter.cs
│ │ ├── IRouteWithArea.cs
│ │ ├── ITempDataProvider.cs
│ │ ├── ITempDataProviderFactory.cs
│ │ ├── IUniquelyIdentifiable.cs
│ │ ├── IUnvalidatedRequestValues.cs
│ │ ├── IUnvalidatedValueProvider.cs
│ │ ├── IValueProvider.cs
│ │ ├── IView.cs
│ │ ├── IViewDataContainer.cs
│ │ ├── IViewEngine.cs
│ │ ├── IViewLocationCache.cs
│ │ ├── IViewPageActivator.cs
│ │ ├── IViewStartPageChild.cs
│ │ ├── InputType.cs
│ │ ├── JQueryFormValueProvider.cs
│ │ ├── JQueryFormValueProviderFactory.cs
│ │ ├── JavaScript/
│ │ │ ├── jquery.unobtrusive-ajax.js
│ │ │ └── jquery.validate.unobtrusive.js
│ │ ├── JavaScriptResult.cs
│ │ ├── JsonRequestBehavior.cs
│ │ ├── JsonResult.cs
│ │ ├── JsonValueProviderFactory.cs
│ │ ├── LinqBinaryModelBinder.cs
│ │ ├── MaxLengthAttributeAdapter.cs
│ │ ├── MembershipPasswordAttributeAdapter.cs
│ │ ├── MinLengthAttributeAdapter.cs
│ │ ├── ModelBinderAttribute.cs
│ │ ├── ModelBinderDictionary.cs
│ │ ├── ModelBinderProviderCollection.cs
│ │ ├── ModelBinderProviders.cs
│ │ ├── ModelBinders.cs
│ │ ├── ModelBindingContext.cs
│ │ ├── ModelError.cs
│ │ ├── ModelErrorCollection.cs
│ │ ├── ModelMetadata.cs
│ │ ├── ModelMetadataProvider.cs
│ │ ├── ModelMetadataProviders.cs
│ │ ├── ModelState.cs
│ │ ├── ModelStateDictionary.cs
│ │ ├── ModelValidationResult.cs
│ │ ├── ModelValidator.cs
│ │ ├── ModelValidatorProvider.cs
│ │ ├── ModelValidatorProviderCollection.cs
│ │ ├── ModelValidatorProviders.cs
│ │ ├── MultiSelectList.cs
│ │ ├── MultiServiceResolver.cs
│ │ ├── MvcFilter.cs
│ │ ├── MvcHandler.cs
│ │ ├── MvcHtmlString.cs
│ │ ├── MvcHttpHandler.cs
│ │ ├── MvcRouteHandler.cs
│ │ ├── MvcWebRazorHostFactory.cs
│ │ ├── NameValueCollectionExtensions.cs
│ │ ├── NameValueCollectionValueProvider.cs
│ │ ├── NoAsyncTimeoutAttribute.cs
│ │ ├── NonActionAttribute.cs
│ │ ├── NullViewLocationCache.cs
│ │ ├── OutputCacheAttribute.cs
│ │ ├── OverrideActionFiltersAttribute.cs
│ │ ├── OverrideAuthenticationAttribute.cs
│ │ ├── OverrideAuthorizationAttribute.cs
│ │ ├── OverrideExceptionFiltersAttribute.cs
│ │ ├── OverrideResultFiltersAttribute.cs
│ │ ├── ParameterBindingInfo.cs
│ │ ├── ParameterDescriptor.cs
│ │ ├── ParameterInfoUtil.cs
│ │ ├── PartialViewResult.cs
│ │ ├── PreApplicationStartCode.cs
│ │ ├── Properties/
│ │ │ ├── AssemblyInfo.cs
│ │ │ ├── MvcResources.Designer.cs
│ │ │ └── MvcResources.resx
│ │ ├── QueryStringValueProvider.cs
│ │ ├── QueryStringValueProviderFactory.cs
│ │ ├── RangeAttributeAdapter.cs
│ │ ├── Razor/
│ │ │ ├── MvcCSharpRazorCodeGenerator.cs
│ │ │ ├── MvcCSharpRazorCodeParser.cs
│ │ │ ├── MvcVBRazorCodeParser.cs
│ │ │ ├── MvcWebPageRazorHost.cs
│ │ │ ├── SetModelTypeCodeGenerator.cs
│ │ │ └── StartPageLookupDelegate.cs
│ │ ├── RazorView.cs
│ │ ├── RazorViewEngine.cs
│ │ ├── ReaderWriterCache.cs
│ │ ├── RedirectResult.cs
│ │ ├── RedirectToRouteResult.cs
│ │ ├── ReflectedActionDescriptor.cs
│ │ ├── ReflectedAttributeCache.cs
│ │ ├── ReflectedControllerDescriptor.cs
│ │ ├── ReflectedParameterBindingInfo.cs
│ │ ├── ReflectedParameterDescriptor.cs
│ │ ├── RegularExpressionAttributeAdapter.cs
│ │ ├── RemoteAttribute.cs
│ │ ├── RequireHttpsAttribute.cs
│ │ ├── RequiredAttributeAdapter.cs
│ │ ├── ResultExecutedContext.cs
│ │ ├── ResultExecutingContext.cs
│ │ ├── RouteAreaAttribute.cs
│ │ ├── RouteAttribute.cs
│ │ ├── RouteCollectionExtensions.cs
│ │ ├── RouteDataValueProvider.cs
│ │ ├── RouteDataValueProviderFactory.cs
│ │ ├── RoutePrefixAttribute.cs
│ │ ├── RouteValuesHelpers.cs
│ │ ├── Routing/
│ │ │ ├── AttributeRoutingMapper.cs
│ │ │ ├── ConstraintValidation.cs
│ │ │ ├── DefaultDirectRouteProvider.cs
│ │ │ ├── DirectRouteCandidate.cs
│ │ │ ├── DirectRouteExtensions.cs
│ │ │ ├── IDirectRouteProvider.cs
│ │ │ ├── IRouteInfoProvider.cs
│ │ │ ├── LinkGenerationRoute.cs
│ │ │ ├── ParsedRoute.cs
│ │ │ ├── RouteBuilder.cs
│ │ │ ├── RouteCollectionAttributeRoutingExtensions.cs
│ │ │ ├── RouteCollectionRoute.cs
│ │ │ └── RouteDataTokenKeys.cs
│ │ ├── SelectList.cs
│ │ ├── SelectListGroup.cs
│ │ ├── SelectListItem.cs
│ │ ├── SessionStateAttribute.cs
│ │ ├── SessionStateTempDataProvider.cs
│ │ ├── SingleServiceResolver.cs
│ │ ├── StringLengthAttributeAdapter.cs
│ │ ├── System.Web.Mvc.csproj
│ │ ├── TagBuilderExtensions.cs
│ │ ├── TempDataDictionary.cs
│ │ ├── TemplateInfo.cs
│ │ ├── TryGetValueDelegate.cs
│ │ ├── TypeCacheSerializer.cs
│ │ ├── TypeCacheUtil.cs
│ │ ├── TypeDescriptorHelper.cs
│ │ ├── TypeHelpers.cs
│ │ ├── UnvalidatedRequestValuesAccessor.cs
│ │ ├── UnvalidatedRequestValuesWrapper.cs
│ │ ├── UrlHelper.cs
│ │ ├── UrlParameter.cs
│ │ ├── ValidatableObjectAdapter.cs
│ │ ├── ValidateAntiForgeryTokenAttribute.cs
│ │ ├── ValidateInputAttribute.cs
│ │ ├── ValueProviderCollection.cs
│ │ ├── ValueProviderDictionary.cs
│ │ ├── ValueProviderFactories.cs
│ │ ├── ValueProviderFactory.cs
│ │ ├── ValueProviderFactoryCollection.cs
│ │ ├── ValueProviderResult.cs
│ │ ├── ValueProviderUtil.cs
│ │ ├── ViewContext.cs
│ │ ├── ViewDataDictionary.cs
│ │ ├── ViewDataDictionaryOfTModel.cs
│ │ ├── ViewDataInfo.cs
│ │ ├── ViewEngineCollection.cs
│ │ ├── ViewEngineResult.cs
│ │ ├── ViewEngines.cs
│ │ ├── ViewMasterPage.cs
│ │ ├── ViewMasterPageControlBuilder.cs
│ │ ├── ViewMasterPageOfTModel.cs
│ │ ├── ViewPage.cs
│ │ ├── ViewPageControlBuilder.cs
│ │ ├── ViewPageOfTModel.cs
│ │ ├── ViewResult.cs
│ │ ├── ViewResultBase.cs
│ │ ├── ViewStartPage.cs
│ │ ├── ViewTemplateUserControl.cs
│ │ ├── ViewTemplateUserControlOfTModel.cs
│ │ ├── ViewType.cs
│ │ ├── ViewTypeControlBuilder.cs
│ │ ├── ViewTypeParserFilter.cs
│ │ ├── ViewUserControl.cs
│ │ ├── ViewUserControlControlBuilder.cs
│ │ ├── ViewUserControlOfTModel.cs
│ │ ├── VirtualPathProviderViewEngine.cs
│ │ ├── WebFormView.cs
│ │ ├── WebFormViewEngine.cs
│ │ ├── WebViewPage.cs
│ │ ├── WebViewPageOfTModel.cs
│ │ └── packages.config
│ ├── System.Web.Razor/
│ │ ├── CSharpRazorCodeLanguage.cs
│ │ ├── DocumentParseCompleteEventArgs.cs
│ │ ├── Editor/
│ │ │ ├── AutoCompleteEditHandler.cs
│ │ │ ├── BackgroundParser.cs
│ │ │ ├── EditResult.cs
│ │ │ ├── EditorHints.cs
│ │ │ ├── ImplicitExpressionEditHandler.cs
│ │ │ ├── RazorEditorTrace.cs
│ │ │ ├── SingleLineMarkupEditHandler.cs
│ │ │ └── SpanEditHandler.cs
│ │ ├── Generator/
│ │ │ ├── AddImportCodeGenerator.cs
│ │ │ ├── AttributeBlockCodeGenerator.cs
│ │ │ ├── BaseCodeWriter.cs
│ │ │ ├── BlockCodeGenerator.cs
│ │ │ ├── CSharpCodeWriter.cs
│ │ │ ├── CSharpRazorCodeGenerator.cs
│ │ │ ├── CodeGenerationCompleteEventArgs.cs
│ │ │ ├── CodeGeneratorContext.cs
│ │ │ ├── CodeGeneratorPaddingHelper.cs
│ │ │ ├── CodeWriter.cs
│ │ │ ├── CodeWriterExtensions.cs
│ │ │ ├── DynamicAttributeBlockCodeGenerator.cs
│ │ │ ├── ExpressionCodeGenerator.cs
│ │ │ ├── ExpressionRenderingMode.cs
│ │ │ ├── GeneratedClassContext.cs
│ │ │ ├── GeneratedCodeMapping.cs
│ │ │ ├── HelperCodeGenerator.cs
│ │ │ ├── HybridCodeGenerator.cs
│ │ │ ├── IBlockCodeGenerator.cs
│ │ │ ├── ISpanCodeGenerator.cs
│ │ │ ├── LiteralAttributeCodeGenerator.cs
│ │ │ ├── MarkupCodeGenerator.cs
│ │ │ ├── RazorCodeGenerator.cs
│ │ │ ├── RazorCommentCodeGenerator.cs
│ │ │ ├── RazorDirectiveAttributeCodeGenerator.cs
│ │ │ ├── ResolveUrlCodeGenerator.cs
│ │ │ ├── SectionCodeGenerator.cs
│ │ │ ├── SetBaseTypeCodeGenerator.cs
│ │ │ ├── SetLayoutCodeGenerator.cs
│ │ │ ├── SetVBOptionCodeGenerator.cs
│ │ │ ├── SpanCodeGenerator.cs
│ │ │ ├── StatementCodeGenerator.cs
│ │ │ ├── TemplateBlockCodeGenerator.cs
│ │ │ ├── TypeMemberCodeGenerator.cs
│ │ │ ├── VBCodeWriter.cs
│ │ │ └── VBRazorCodeGenerator.cs
│ │ ├── GeneratorResults.cs
│ │ ├── GlobalSuppressions.cs
│ │ ├── Parser/
│ │ │ ├── BalancingModes.cs
│ │ │ ├── CSharpCodeParser.Directives.cs
│ │ │ ├── CSharpCodeParser.Statements.cs
│ │ │ ├── CSharpCodeParser.cs
│ │ │ ├── CSharpLanguageCharacteristics.cs
│ │ │ ├── CallbackVisitor.cs
│ │ │ ├── ConditionalAttributeCollapser.cs
│ │ │ ├── HtmlLanguageCharacteristics.cs
│ │ │ ├── HtmlMarkupParser.Block.cs
│ │ │ ├── HtmlMarkupParser.Document.cs
│ │ │ ├── HtmlMarkupParser.Section.cs
│ │ │ ├── HtmlMarkupParser.cs
│ │ │ ├── ISyntaxTreeRewriter.cs
│ │ │ ├── LanguageCharacteristics.cs
│ │ │ ├── MarkupCollapser.cs
│ │ │ ├── MarkupRewriter.cs
│ │ │ ├── ParserBase.cs
│ │ │ ├── ParserContext.cs
│ │ │ ├── ParserHelpers.cs
│ │ │ ├── ParserVisitor.cs
│ │ │ ├── ParserVisitorExtensions.cs
│ │ │ ├── RazorParser.cs
│ │ │ ├── SyntaxConstants.cs
│ │ │ ├── SyntaxTree/
│ │ │ │ ├── AcceptedCharacters.cs
│ │ │ │ ├── Block.cs
│ │ │ │ ├── BlockBuilder.cs
│ │ │ │ ├── BlockType.cs
│ │ │ │ ├── EquivalenceComparer.cs
│ │ │ │ ├── RazorError.cs
│ │ │ │ ├── Span.cs
│ │ │ │ ├── SpanBuilder.cs
│ │ │ │ ├── SpanKind.cs
│ │ │ │ └── SyntaxTreeNode.cs
│ │ │ ├── TextReaderExtensions.cs
│ │ │ ├── TokenizerBackedParser.Helpers.cs
│ │ │ ├── TokenizerBackedParser.cs
│ │ │ ├── VBCodeParser.Directives.cs
│ │ │ ├── VBCodeParser.Statements.cs
│ │ │ ├── VBCodeParser.cs
│ │ │ ├── VBLanguageCharacteristics.cs
│ │ │ └── WhitespaceRewriter.cs
│ │ ├── ParserResults.cs
│ │ ├── PartialParseResult.cs
│ │ ├── Properties/
│ │ │ └── AssemblyInfo.cs
│ │ ├── RazorCodeLanguage.cs
│ │ ├── RazorDebugHelpers.cs
│ │ ├── RazorDirectiveAttribute.cs
│ │ ├── RazorEditorParser.cs
│ │ ├── RazorEngineHost.cs
│ │ ├── RazorTemplateEngine.cs
│ │ ├── Resources/
│ │ │ ├── RazorResources.Designer.cs
│ │ │ └── RazorResources.resx
│ │ ├── StateMachine.cs
│ │ ├── System.Web.Razor.csproj
│ │ ├── Text/
│ │ │ ├── BufferingTextReader.cs
│ │ │ ├── ITextBuffer.cs
│ │ │ ├── LineTrackingStringBuffer.cs
│ │ │ ├── LocationTagged.cs
│ │ │ ├── LookaheadTextReader.cs
│ │ │ ├── LookaheadToken.cs
│ │ │ ├── SeekableTextReader.cs
│ │ │ ├── SourceLocation.cs
│ │ │ ├── SourceLocationTracker.cs
│ │ │ ├── TextBufferReader.cs
│ │ │ ├── TextChange.cs
│ │ │ ├── TextChangeType.cs
│ │ │ ├── TextDocumentReader.cs
│ │ │ └── TextExtensions.cs
│ │ ├── Tokenizer/
│ │ │ ├── CSharpHelpers.cs
│ │ │ ├── CSharpKeywordDetector.cs
│ │ │ ├── CSharpTokenizer.cs
│ │ │ ├── HtmlTokenizer.cs
│ │ │ ├── ITokenizer.cs
│ │ │ ├── Symbols/
│ │ │ │ ├── CSharpKeyword.cs
│ │ │ │ ├── CSharpSymbol.cs
│ │ │ │ ├── CSharpSymbolType.cs
│ │ │ │ ├── HtmlSymbol.cs
│ │ │ │ ├── HtmlSymbolType.cs
│ │ │ │ ├── ISymbol.cs
│ │ │ │ ├── KnownSymbolType.cs
│ │ │ │ ├── SymbolBase.cs
│ │ │ │ ├── SymbolExtensions.cs
│ │ │ │ ├── SymbolTypeSuppressions.cs
│ │ │ │ ├── VBKeyword.cs
│ │ │ │ ├── VBSymbol.cs
│ │ │ │ └── VBSymbolType.cs
│ │ │ ├── Tokenizer.cs
│ │ │ ├── TokenizerView.cs
│ │ │ ├── VBHelpers.cs
│ │ │ ├── VBKeywordDetector.cs
│ │ │ ├── VBTokenizer.cs
│ │ │ └── XmlHelpers.cs
│ │ ├── Utils/
│ │ │ ├── CharUtils.cs
│ │ │ ├── DisposableAction.cs
│ │ │ ├── EnumUtil.cs
│ │ │ └── EnumeratorExtensions.cs
│ │ └── VBRazorCodeLanguage.cs
│ ├── System.Web.WebPages/
│ │ ├── ApplicationPart.cs
│ │ ├── ApplicationParts/
│ │ │ ├── ApplicationPartRegistry.cs
│ │ │ ├── DictionaryBasedVirtualPathFactory.cs
│ │ │ ├── IResourceAssembly.cs
│ │ │ ├── LazyAction.cs
│ │ │ ├── ResourceAssembly.cs
│ │ │ ├── ResourceHandler.cs
│ │ │ └── ResourceRouteHandler.cs
│ │ ├── ApplicationStartPage.cs
│ │ ├── AttributeValue.cs
│ │ ├── BrowserHelpers.cs
│ │ ├── BrowserOverride.cs
│ │ ├── BrowserOverrideStore.cs
│ │ ├── BrowserOverrideStores.cs
│ │ ├── BuildManagerWrapper.cs
│ │ ├── Common/
│ │ │ └── DisposableAction.cs
│ │ ├── CookieBrowserOverrideStore.cs
│ │ ├── DefaultDisplayMode.cs
│ │ ├── DisplayInfo.cs
│ │ ├── DisplayModeProvider.cs
│ │ ├── DynamicHttpApplicationState.cs
│ │ ├── DynamicPageDataDictionary.cs
│ │ ├── FileExistenceCache.cs
│ │ ├── GlobalSuppressions.cs
│ │ ├── HelperPage.cs
│ │ ├── HelperResult.cs
│ │ ├── Helpers/
│ │ │ ├── AntiForgery.cs
│ │ │ ├── AntiForgeryConfig.cs
│ │ │ ├── AntiXsrf/
│ │ │ │ ├── AntiForgeryConfigWrapper.cs
│ │ │ │ ├── AntiForgeryToken.cs
│ │ │ │ ├── AntiForgeryTokenSerializer.cs
│ │ │ │ ├── AntiForgeryTokenStore.cs
│ │ │ │ ├── AntiForgeryWorker.cs
│ │ │ │ ├── BinaryBlob.cs
│ │ │ │ ├── ClaimUidExtractor.cs
│ │ │ │ ├── IAntiForgeryConfig.cs
│ │ │ │ ├── IAntiForgeryTokenSerializer.cs
│ │ │ │ ├── IClaimUidExtractor.cs
│ │ │ │ ├── ICryptoSystem.cs
│ │ │ │ ├── ITokenStore.cs
│ │ │ │ ├── ITokenValidator.cs
│ │ │ │ ├── MachineKey45CryptoSystem.cs
│ │ │ │ └── TokenValidator.cs
│ │ │ ├── Claims/
│ │ │ │ ├── Claim.cs
│ │ │ │ ├── ClaimsIdentity.cs
│ │ │ │ └── ClaimsIdentityConverter.cs
│ │ │ ├── CryptoUtil.cs
│ │ │ ├── IAntiForgeryAdditionalDataProvider.cs
│ │ │ ├── UnvalidatedRequestValues.cs
│ │ │ └── Validation.cs
│ │ ├── Html/
│ │ │ ├── HtmlHelper.Checkbox.cs
│ │ │ ├── HtmlHelper.Input.cs
│ │ │ ├── HtmlHelper.Internal.cs
│ │ │ ├── HtmlHelper.Label.cs
│ │ │ ├── HtmlHelper.Radio.cs
│ │ │ ├── HtmlHelper.Select.cs
│ │ │ ├── HtmlHelper.TextArea.cs
│ │ │ ├── HtmlHelper.Validation.cs
│ │ │ ├── HtmlHelper.cs
│ │ │ ├── ModelState.cs
│ │ │ ├── ModelStateDictionary.cs
│ │ │ └── SelectListItem.cs
│ │ ├── HttpContextExtensions.cs
│ │ ├── IDisplayMode.cs
│ │ ├── ITemplateFile.cs
│ │ ├── IVirtualPathFactory.cs
│ │ ├── IVirtualPathUtility.cs
│ │ ├── IWebPageRequestExecutor.cs
│ │ ├── Instrumentation/
│ │ │ ├── HttpContextAdapter.Availability.cs
│ │ │ ├── HttpContextAdapter.generated.cs
│ │ │ ├── HttpContextAdapter.tt
│ │ │ ├── InstrumentationService.cs
│ │ │ ├── PageExecutionContextAdapter.generated.cs
│ │ │ ├── PageExecutionContextAdapter.tt
│ │ │ ├── PageExecutionListenerAdapter.generated.cs
│ │ │ ├── PageExecutionListenerAdapter.tt
│ │ │ ├── PageInstrumentationServiceAdapter.cs
│ │ │ └── PositionTagged.cs
│ │ ├── MimeMapping.cs
│ │ ├── Mvc/
│ │ │ ├── HttpAntiForgeryException.cs
│ │ │ ├── ModelClientValidationEqualToRule.cs
│ │ │ ├── ModelClientValidationMaxLengthRule.cs
│ │ │ ├── ModelClientValidationMembershipPasswordRule.cs
│ │ │ ├── ModelClientValidationMinLengthRule.cs
│ │ │ ├── ModelClientValidationRangeRule.cs
│ │ │ ├── ModelClientValidationRegexRule.cs
│ │ │ ├── ModelClientValidationRemoteRule.cs
│ │ │ ├── ModelClientValidationRequiredRule.cs
│ │ │ ├── ModelClientValidationRule.cs
│ │ │ ├── ModelClientValidationStringLengthRule.cs
│ │ │ ├── TagBuilder.cs
│ │ │ ├── TagRenderMode.cs
│ │ │ └── UnobtrusiveValidationAttributesGenerator.cs
│ │ ├── PageDataDictionary.cs
│ │ ├── PageVirtualPathAttribute.cs
│ │ ├── PreApplicationStartCode.cs
│ │ ├── Properties/
│ │ │ └── AssemblyInfo.cs
│ │ ├── ReflectionDynamicObject.cs
│ │ ├── RequestBrowserOverrideStore.cs
│ │ ├── RequestExtensions.cs
│ │ ├── RequestResourceTracker.cs
│ │ ├── Resources/
│ │ │ ├── WebPageResources.Designer.cs
│ │ │ └── WebPageResources.resx
│ │ ├── ResponseExtensions.cs
│ │ ├── Scope/
│ │ │ ├── ApplicationScopeStorageDictionary.cs
│ │ │ ├── AspNetRequestScopeStorageProvider.cs
│ │ │ ├── IScopeStorageProvider.cs
│ │ │ ├── ScopeStorage.cs
│ │ │ ├── ScopeStorageComparer.cs
│ │ │ ├── ScopeStorageDictionary.cs
│ │ │ ├── StaticScopeStorageProvider.cs
│ │ │ └── WebConfigScopeStorageDictionary.cs
│ │ ├── SectionWriter.cs
│ │ ├── StartPage.cs
│ │ ├── StringExtensions.cs
│ │ ├── StringWriterExtensions.cs
│ │ ├── System.Web.WebPages.csproj
│ │ ├── TemplateFileInfo.cs
│ │ ├── TemplateStack.cs
│ │ ├── UrlDataList.cs
│ │ ├── Utils/
│ │ │ ├── BuildManagerExceptionUtil.cs
│ │ │ ├── CultureUtil.cs
│ │ │ ├── HtmlAttributePropertyHelper.cs
│ │ │ ├── PathUtil.cs
│ │ │ ├── SessionStateUtil.cs
│ │ │ ├── TypeHelper.cs
│ │ │ ├── UrlRewriterHelper.cs
│ │ │ └── UrlUtil.cs
│ │ ├── Validation/
│ │ │ ├── CompareValidator.cs
│ │ │ ├── DataTypeValidator.cs
│ │ │ ├── IValidator.cs
│ │ │ ├── RequestFieldValidatorBase.cs
│ │ │ ├── ValidationAttributeAdapter.cs
│ │ │ ├── ValidationHelper.cs
│ │ │ └── Validator.cs
│ │ ├── VirtualPathFactoryExtensions.cs
│ │ ├── VirtualPathFactoryManager.cs
│ │ ├── VirtualPathUtilityWrapper.cs
│ │ ├── WebPage.cs
│ │ ├── WebPageBase.cs
│ │ ├── WebPageContext.cs
│ │ ├── WebPageExecutingBase.cs
│ │ ├── WebPageHttpHandler.cs
│ │ ├── WebPageHttpModule.cs
│ │ ├── WebPageMatch.cs
│ │ ├── WebPageRenderingBase.cs
│ │ ├── WebPageRoute.cs
│ │ └── packages.config
│ ├── System.Web.WebPages.Administration/
│ │ ├── Default.cshtml
│ │ ├── EnableInstructions.cshtml
│ │ ├── Framework/
│ │ │ ├── AdminSecurity.cs
│ │ │ ├── PreApplicationStartCode.cs
│ │ │ └── SiteAdmin.cs
│ │ ├── Login.cshtml
│ │ ├── Logout.cshtml
│ │ ├── Properties/
│ │ │ └── AssemblyInfo.cs
│ │ ├── Register.cshtml
│ │ ├── Resources/
│ │ │ ├── AdminResources.Designer.cs
│ │ │ ├── AdminResources.resx
│ │ │ ├── PackageManagerResources.Designer.cs
│ │ │ └── PackageManagerResources.resx
│ │ ├── Site.css
│ │ ├── System.Web.WebPages.Administration.csproj
│ │ ├── _Layout.cshtml
│ │ ├── _pagestart.cshtml
│ │ └── packages.config
│ ├── System.Web.WebPages.Deployment/
│ │ ├── AppDomainHelper.cs
│ │ ├── AssemblyUtils.cs
│ │ ├── BuildManagerWrapper.cs
│ │ ├── Common/
│ │ │ ├── IFileSystem.cs
│ │ │ └── PhysicalFileSystem.cs
│ │ ├── GlobalSuppressions.cs
│ │ ├── IBuildManager.cs
│ │ ├── PreApplicationStartCode.cs
│ │ ├── Properties/
│ │ │ └── AssemblyInfo.cs
│ │ ├── Resources/
│ │ │ ├── ConfigurationResources.Designer.cs
│ │ │ └── ConfigurationResources.resx
│ │ ├── System.Web.WebPages.Deployment.csproj
│ │ ├── WebPagesDeployment.cs
│ │ └── packages.config
│ ├── System.Web.WebPages.Razor/
│ │ ├── AssemblyBuilderWrapper.cs
│ │ ├── CompilingPathEventArgs.cs
│ │ ├── Configuration/
│ │ │ ├── HostSection.cs
│ │ │ ├── RazorPagesSection.cs
│ │ │ └── RazorWebSectionGroup.cs
│ │ ├── GlobalSuppressions.cs
│ │ ├── HostingEnvironmentWrapper.cs
│ │ ├── IAssemblyBuilder.cs
│ │ ├── IHostingEnvironment.cs
│ │ ├── PreApplicationStartCode.cs
│ │ ├── Properties/
│ │ │ └── AssemblyInfo.cs
│ │ ├── RazorBuildProvider.cs
│ │ ├── Resources/
│ │ │ ├── RazorWebResources.Designer.cs
│ │ │ └── RazorWebResources.resx
│ │ ├── System.Web.WebPages.Razor.csproj
│ │ ├── WebCodeRazorHost.cs
│ │ ├── WebPageRazorHost.cs
│ │ └── WebRazorHostFactory.cs
│ ├── WebApiHelpPage/
│ │ ├── Areas/
│ │ │ └── HelpPage/
│ │ │ ├── ApiDescriptionExtensions.cs
│ │ │ ├── App_Start/
│ │ │ │ └── HelpPageConfig.cs
│ │ │ ├── Controllers/
│ │ │ │ └── HelpController.cs
│ │ │ ├── HelpPage.css
│ │ │ ├── HelpPageAreaRegistration.cs
│ │ │ ├── HelpPageConfigurationExtensions.cs
│ │ │ ├── ModelDescriptions/
│ │ │ │ ├── CollectionModelDescription.cs
│ │ │ │ ├── ComplexTypeModelDescription.cs
│ │ │ │ ├── DictionaryModelDescription.cs
│ │ │ │ ├── EnumTypeModelDescription.cs
│ │ │ │ ├── EnumValueDescription.cs
│ │ │ │ ├── IModelDocumentationProvider.cs
│ │ │ │ ├── KeyValuePairModelDescription.cs
│ │ │ │ ├── ModelDescription.cs
│ │ │ │ ├── ModelDescriptionGenerator.cs
│ │ │ │ ├── ModelNameAttribute.cs
│ │ │ │ ├── ModelNameHelper.cs
│ │ │ │ ├── ParameterAnnotation.cs
│ │ │ │ ├── ParameterDescription.cs
│ │ │ │ └── SimpleTypeModelDescription.cs
│ │ │ ├── Models/
│ │ │ │ └── HelpPageApiModel.cs
│ │ │ ├── SampleGeneration/
│ │ │ │ ├── HelpPageSampleGenerator.cs
│ │ │ │ ├── HelpPageSampleKey.cs
│ │ │ │ ├── ImageSample.cs
│ │ │ │ ├── InvalidSample.cs
│ │ │ │ ├── ObjectGenerator.cs
│ │ │ │ ├── SampleDirection.cs
│ │ │ │ └── TextSample.cs
│ │ │ ├── Views/
│ │ │ │ ├── Help/
│ │ │ │ │ ├── Api.cshtml
│ │ │ │ │ ├── DisplayTemplates/
│ │ │ │ │ │ ├── ApiGroup.cshtml
│ │ │ │ │ │ ├── CollectionModelDescription.cshtml
│ │ │ │ │ │ ├── ComplexTypeModelDescription.cshtml
│ │ │ │ │ │ ├── DictionaryModelDescription.cshtml
│ │ │ │ │ │ ├── EnumTypeModelDescription.cshtml
│ │ │ │ │ │ ├── HelpPageApiModel.cshtml
│ │ │ │ │ │ ├── ImageSample.cshtml
│ │ │ │ │ │ ├── InvalidSample.cshtml
│ │ │ │ │ │ ├── KeyValuePairModelDescription.cshtml
│ │ │ │ │ │ ├── ModelDescriptionLink.cshtml
│ │ │ │ │ │ ├── Parameters.cshtml
│ │ │ │ │ │ ├── Samples.cshtml
│ │ │ │ │ │ ├── SimpleTypeModelDescription.cshtml
│ │ │ │ │ │ └── TextSample.cshtml
│ │ │ │ │ ├── Index.cshtml
│ │ │ │ │ └── ResourceModel.cshtml
│ │ │ │ ├── Shared/
│ │ │ │ │ └── _Layout.cshtml
│ │ │ │ ├── Web.config
│ │ │ │ └── _ViewStart.cshtml
│ │ │ └── XmlDocumentationProvider.cs
│ │ ├── GlobalSuppressions.cs
│ │ ├── Properties/
│ │ │ └── AssemblyInfo.cs
│ │ ├── Settings.StyleCop
│ │ ├── VB/
│ │ │ ├── Areas/
│ │ │ │ └── HelpPage/
│ │ │ │ ├── ApiDescriptionExtensions.vb
│ │ │ │ ├── App_Start/
│ │ │ │ │ └── HelpPageConfig.vb
│ │ │ │ ├── Controllers/
│ │ │ │ │ └── HelpController.vb
│ │ │ │ ├── HelpPage.css
│ │ │ │ ├── HelpPageAreaRegistration.vb
│ │ │ │ ├── HelpPageConfigurationExtensions.vb
│ │ │ │ ├── ModelDescriptions/
│ │ │ │ │ ├── CollectionModelDescription.vb
│ │ │ │ │ ├── ComplexTypeModelDescription.vb
│ │ │ │ │ ├── DictionaryModelDescription.vb
│ │ │ │ │ ├── EnumTypeModelDescription.vb
│ │ │ │ │ ├── EnumValueDescription.vb
│ │ │ │ │ ├── IModelDocumentationProvider.vb
│ │ │ │ │ ├── KeyValuePairModelDescription.vb
│ │ │ │ │ ├── ModelDescription.vb
│ │ │ │ │ ├── ModelDescriptionGenerator.vb
│ │ │ │ │ ├── ModelNameAttribute.vb
│ │ │ │ │ ├── ModelNameHelper.vb
│ │ │ │ │ ├── ParameterAnnotation.vb
│ │ │ │ │ ├── ParameterDescription.vb
│ │ │ │ │ └── SimpleTypeModelDescription.vb
│ │ │ │ ├── Models/
│ │ │ │ │ └── HelpPageApiModel.vb
│ │ │ │ ├── SampleGeneration/
│ │ │ │ │ ├── HelpPageSampleGenerator.vb
│ │ │ │ │ ├── HelpPageSampleKey.vb
│ │ │ │ │ ├── ImageSample.vb
│ │ │ │ │ ├── InvalidSample.vb
│ │ │ │ │ ├── ObjectGenerator.vb
│ │ │ │ │ ├── SampleDirection.vb
│ │ │ │ │ └── TextSample.vb
│ │ │ │ ├── Views/
│ │ │ │ │ ├── Help/
│ │ │ │ │ │ ├── Api.vbhtml
│ │ │ │ │ │ ├── DisplayTemplates/
│ │ │ │ │ │ │ ├── ApiGroup.vbhtml
│ │ │ │ │ │ │ ├── CollectionModelDescription.vbhtml
│ │ │ │ │ │ │ ├── ComplexTypeModelDescription.vbhtml
│ │ │ │ │ │ │ ├── DictionaryModelDescription.vbhtml
│ │ │ │ │ │ │ ├── EnumTypeModelDescription.vbhtml
│ │ │ │ │ │ │ ├── HelpPageApiModel.vbhtml
│ │ │ │ │ │ │ ├── ImageSample.vbhtml
│ │ │ │ │ │ │ ├── InvalidSample.vbhtml
│ │ │ │ │ │ │ ├── KeyValuePairModelDescription.vbhtml
│ │ │ │ │ │ │ ├── ModelDescriptionLink.vbhtml
│ │ │ │ │ │ │ ├── Parameters.vbhtml
│ │ │ │ │ │ │ ├── Samples.vbhtml
│ │ │ │ │ │ │ ├── SimpleTypeModelDescription.vbhtml
│ │ │ │ │ │ │ └── TextSample.vbhtml
│ │ │ │ │ │ ├── Index.vbhtml
│ │ │ │ │ │ └── ResourceModel.vbhtml
│ │ │ │ │ ├── Shared/
│ │ │ │ │ │ └── _Layout.vbhtml
│ │ │ │ │ ├── Web.config
│ │ │ │ │ └── _ViewStart.vbhtml
│ │ │ │ └── XmlDocumentationProvider.vb
│ │ │ ├── GlobalSuppressions.vb
│ │ │ ├── Properties/
│ │ │ │ └── AssemblyInfo.vb
│ │ │ ├── Settings.StyleCop
│ │ │ ├── WebApiHelpPage.VB.nuspec
│ │ │ ├── WebApiHelpPageVB.vbproj
│ │ │ └── packages.config
│ │ ├── WebApiHelpPage.csproj
│ │ ├── WebApiHelpPage.nuspec
│ │ ├── WebApiHelpPageMsBuildTasks.targets
│ │ └── packages.config
│ ├── WebHelpers.ruleset
│ ├── WebMatrix.Data/
│ │ ├── ConfigurationManagerWrapper.cs
│ │ ├── ConnectionConfiguration.cs
│ │ ├── ConnectionEventArgs.cs
│ │ ├── Database.cs
│ │ ├── DbProviderFactoryWrapper.cs
│ │ ├── DynamicRecord.cs
│ │ ├── GlobalSuppressions.cs
│ │ ├── IConfigurationManager.cs
│ │ ├── IConnectionConfiguration.cs
│ │ ├── IDbFileHandler.cs
│ │ ├── IDbProviderFactory.cs
│ │ ├── Properties/
│ │ │ └── AssemblyInfo.cs
│ │ ├── Resources/
│ │ │ ├── DataResources.Designer.cs
│ │ │ └── DataResources.resx
│ │ ├── SqlCeDbFileHandler.cs
│ │ ├── SqlServerDbFileHandler.cs
│ │ └── WebMatrix.Data.csproj
│ └── WebMatrix.WebData/
│ ├── ConfigUtil.cs
│ ├── DatabaseConnectionInfo.cs
│ ├── DatabaseWrapper.cs
│ ├── ExtendedMembershipProvider.cs
│ ├── FormsAuthenticationSettings.cs
│ ├── GlobalSuppressions.cs
│ ├── IDatabase.cs
│ ├── OAuthAccountData.cs
│ ├── PreApplicationStartCode.cs
│ ├── Properties/
│ │ └── AssemblyInfo.cs
│ ├── Resources/
│ │ ├── WebDataResources.Designer.cs
│ │ └── WebDataResources.resx
│ ├── SimpleMembershipProvider.cs
│ ├── SimpleMembershipProviderCasingBehavior.cs
│ ├── SimpleRoleProvider.cs
│ ├── WebMatrix.WebData.csproj
│ └── WebSecurity.cs
├── test/
│ ├── Common/
│ │ ├── AttributeListTest.cs
│ │ ├── CollectionExtensionsTest.cs
│ │ ├── DictionaryExtensionsTest.cs
│ │ ├── ErrorTest.cs
│ │ ├── HttpMethodHelperTest.cs
│ │ ├── ListWrapperCollectionTests.cs
│ │ ├── PathHelpersTest.cs
│ │ ├── PrefixContainerTest.cs
│ │ ├── Routing/
│ │ │ ├── DefaultInlineConstraintResolverTest.cs
│ │ │ ├── DirectRouteBuilderTests.cs
│ │ │ ├── InlineRouteTemplateParserTests.cs
│ │ │ ├── RouteConstraintsTests.cs
│ │ │ ├── RouteFactoryAttributeTests.cs
│ │ │ ├── RoutePrecedenceTests.cs
│ │ │ └── SubRouteCollectionTest.cs
│ │ ├── TaskHelpersExtensionsTest.cs
│ │ ├── TaskHelpersTest.cs
│ │ ├── TypeExtensionsTest.cs
│ │ └── UriQueryUtilityTest.cs
│ ├── Directory.Build.props
│ ├── Directory.Build.targets
│ ├── Microsoft.AspNet.Facebook.Test/
│ │ ├── App.config
│ │ ├── DefaultFacebookClientProviderTest.cs
│ │ ├── DefaultFacebookPermissionServiceTest.cs
│ │ ├── FacebookAuthorizeAttributeTest.cs
│ │ ├── FacebookAuthorizeFilterHookTest.cs
│ │ ├── FacebookAuthorizeFilterTest.cs
│ │ ├── FacebookClientExtensionsTest.cs
│ │ ├── FacebookConfigurationTest.cs
│ │ ├── FacebookContextModelBinderTest.cs
│ │ ├── FacebookQueryHelperTest.cs
│ │ ├── FacebookRealtimeControllerTest.cs
│ │ ├── FacebookRedirectContextModelBinderTest.cs
│ │ ├── GlobalFacebookConfigurationTest.cs
│ │ ├── Helpers/
│ │ │ ├── LocalFacebookClient.cs
│ │ │ └── MockHelpers.cs
│ │ ├── Microsoft.AspNet.Facebook.Test.csproj
│ │ ├── Types/
│ │ │ ├── FacebookPicture.cs
│ │ │ ├── SimpleUser.cs
│ │ │ ├── UserPhoto.cs
│ │ │ ├── UserStatus.cs
│ │ │ ├── UserTypeWithFieldModifiers.cs
│ │ │ ├── UserTypeWithIgnoredProperties.cs
│ │ │ ├── UserTypeWithRenamedProperties.cs
│ │ │ ├── UserTypesWithCycles.cs
│ │ │ └── UserWithFriends.cs
│ │ └── packages.config
│ ├── Microsoft.TestCommon/
│ │ ├── AppDomainUtils.cs
│ │ ├── Assert.cs
│ │ ├── CultureReplacer.cs
│ │ ├── DataAttribute.cs
│ │ ├── DictionaryEqualityComparer.cs
│ │ ├── Directory.Build.props
│ │ ├── EnumHelperTestBase.cs
│ │ ├── ExceptionAssertions.cs
│ │ ├── ExceptionUtility.cs
│ │ ├── FactAttribute.cs
│ │ ├── FactDiscoverer.cs
│ │ ├── ForceGCAttribute.cs
│ │ ├── InlineDataAttribute.cs
│ │ ├── MatrixTheoryDataSet.cs
│ │ ├── MemberHelper.cs
│ │ ├── Microsoft/
│ │ │ └── TestCommon/
│ │ │ ├── DataSets/
│ │ │ │ ├── CommonUnitTestDataSets.cs
│ │ │ │ ├── RefTypeTestData.cs
│ │ │ │ ├── TestData.cs
│ │ │ │ ├── TestDataHolder.cs
│ │ │ │ ├── TestDataVariations.cs
│ │ │ │ └── ValueTypeTestData.cs
│ │ │ ├── GenericTypeAssert.cs
│ │ │ ├── HttpAssert.cs
│ │ │ ├── MediaTypeAssert.cs
│ │ │ ├── MediaTypeHeaderValueComparer.cs
│ │ │ ├── ParsedMediaTypeHeaderValue.cs
│ │ │ ├── RegexReplacement.cs
│ │ │ ├── RuntimeEnvironment.cs
│ │ │ ├── SerializerAssert.cs
│ │ │ ├── StreamAssert.cs
│ │ │ ├── TaskAssert.cs
│ │ │ ├── TestDataSetAttribute.cs
│ │ │ ├── TimeoutConstant.cs
│ │ │ ├── TypeAssert.cs
│ │ │ ├── Types/
│ │ │ │ ├── ByteEnum.cs
│ │ │ │ ├── FlagsEnum.cs
│ │ │ │ ├── INameAndIdContainer.cs
│ │ │ │ ├── ISerializableType.cs
│ │ │ │ ├── LongEnum.cs
│ │ │ │ ├── SByteEnum.cs
│ │ │ │ ├── ShortEnum.cs
│ │ │ │ ├── SimpleEnum.cs
│ │ │ │ ├── UIntEnum.cs
│ │ │ │ └── UShortEnum.cs
│ │ │ └── XmlAssert.cs
│ │ ├── Microsoft.TestCommon.csproj
│ │ ├── Platform.cs
│ │ ├── PlatformInfo.cs
│ │ ├── PortReserver.cs
│ │ ├── PreAppStartTestHelper.cs
│ │ ├── PreserveSyncContextAttribute.cs
│ │ ├── PropertyDataAttribute.cs
│ │ ├── ReflectionAssert.cs
│ │ ├── ReplaceCultureAttribute.cs
│ │ ├── RestoreThreadPrincipalAttribute.cs
│ │ ├── SkippedXunitTestCase.cs
│ │ ├── TestFile.cs
│ │ ├── TestHelper.cs
│ │ ├── TheoryAttribute.cs
│ │ ├── TheoryDataSet.cs
│ │ ├── TheoryDiscoverer.cs
│ │ ├── ThreadPoolSyncContext.cs
│ │ ├── TraitAttribute.cs
│ │ ├── VersionTestHelper.cs
│ │ ├── WebUtils.cs
│ │ └── xunit.runner.json
│ ├── Microsoft.Web.Helpers.Test/
│ │ ├── AnalyticsTest.cs
│ │ ├── FacebookTest.cs
│ │ ├── FileUploadTest.cs
│ │ ├── GamerCardTest.cs
│ │ ├── GravatarTest.cs
│ │ ├── LinkShareTest.cs
│ │ ├── MapsTest.cs
│ │ ├── Microsoft.Web.Helpers.Test.csproj
│ │ ├── PreAppStartCodeTest.cs
│ │ ├── ReCaptchaTest.cs
│ │ ├── ThemesTest.cs
│ │ ├── UrlBuilderTest.cs
│ │ ├── VideoTest.cs
│ │ └── packages.config
│ ├── Microsoft.Web.Mvc.Test/
│ │ ├── Controls/
│ │ │ └── Test/
│ │ │ ├── DesignModeSite.cs
│ │ │ ├── DropDownListTest.cs
│ │ │ ├── MvcControlTest.cs
│ │ │ ├── MvcTestHelper.cs
│ │ │ └── ViewDataContainer.cs
│ │ ├── Microsoft.Web.Mvc.Test.csproj
│ │ ├── ModelBinding/
│ │ │ └── Test/
│ │ │ ├── ArrayModelBinderProviderTest.cs
│ │ │ ├── ArrayModelBinderTest.cs
│ │ │ ├── BinaryDataModelBinderProviderTest.cs
│ │ │ ├── BindingBehaviorAttributeTest.cs
│ │ │ ├── CollectionModelBinderProviderTest.cs
│ │ │ ├── CollectionModelBinderTest.cs
│ │ │ ├── CollectionModelBinderUtilTest.cs
│ │ │ ├── ComplexModelDtoModelBinderProviderTest.cs
│ │ │ ├── ComplexModelDtoModelBinderTest.cs
│ │ │ ├── ComplexModelDtoResultTest.cs
│ │ │ ├── ComplexModelDtoTest.cs
│ │ │ ├── DictionaryModelBinderProviderTest.cs
│ │ │ ├── DictionaryModelBinderTest.cs
│ │ │ ├── ExtensibleModelBinderAdapterTest.cs
│ │ │ ├── ExtensibleModelBindingContextTest.cs
│ │ │ ├── GenericModelBinderProviderTest.cs
│ │ │ ├── KeyValuePairModelBinderProviderTest.cs
│ │ │ ├── KeyValuePairModelBinderTest.cs
│ │ │ ├── KeyValuePairModelBinderUtilTest.cs
│ │ │ ├── ModelBinderConfigTest.cs
│ │ │ ├── ModelBinderProviderCollectionTest.cs
│ │ │ ├── ModelBinderProvidersTest.cs
│ │ │ ├── ModelBinderUtilTest.cs
│ │ │ ├── ModelValidationNodeTest.cs
│ │ │ ├── MutableObjectModelBinderProviderTest.cs
│ │ │ ├── MutableObjectModelBinderTest.cs
│ │ │ ├── SimpleModelBinderProviderTest.cs
│ │ │ ├── TypeConverterModelBinderProviderTest.cs
│ │ │ ├── TypeConverterModelBinderTest.cs
│ │ │ ├── TypeMatchModelBinderProviderTest.cs
│ │ │ └── TypeMatchModelBinderTest.cs
│ │ ├── Test/
│ │ │ ├── AcceptAttributeTest.cs
│ │ │ ├── AjaxOnlyAttributeTest.cs
│ │ │ ├── AreaHelpersTest.cs
│ │ │ ├── AsyncManagerExtensionsTest.cs
│ │ │ ├── ButtonTest.cs
│ │ │ ├── ContentTypeAttributeTest.cs
│ │ │ ├── ControllerExtensionsTest.cs
│ │ │ ├── CookieValueProviderFactoryTest.cs
│ │ │ ├── CopyAsyncParametersAttributeTest.cs
│ │ │ ├── CreditCardAttributeTest.cs
│ │ │ ├── CssExtensionsTests.cs
│ │ │ ├── DeserializeAttributeTest.cs
│ │ │ ├── DynamicReflectionObjectTest.cs
│ │ │ ├── DynamicViewDataDictionaryTest.cs
│ │ │ ├── DynamicViewPageTest.cs
│ │ │ ├── ElementalValueProviderTest.cs
│ │ │ ├── EmailAddressAttribueTest.cs
│ │ │ ├── ExpressionHelperTest.cs
│ │ │ ├── FileExtensionsAttributeTest.cs
│ │ │ ├── FormExtensionsTest.cs
│ │ │ ├── ImageExtensionsTest.cs
│ │ │ ├── MailToExtensionsTest.cs
│ │ │ ├── ModelCopierTest.cs
│ │ │ ├── MvcSerializerTest.cs
│ │ │ ├── RadioExtensionsTest.cs
│ │ │ ├── ReaderWriterCacheTest.cs
│ │ │ ├── RenderActionTest.cs
│ │ │ ├── ScriptExtensionsTest.cs
│ │ │ ├── SerializationExtensionsTest.cs
│ │ │ ├── ServerVariablesValueProviderFactoryTest.cs
│ │ │ ├── SessionValueProviderFactoryTest.cs
│ │ │ ├── SkipBindingAttributeTest.cs
│ │ │ ├── SubmitButtonExtensionsTest.cs
│ │ │ ├── SubmitImageExtensionsTest.cs
│ │ │ ├── TempDataValueProviderFactoryTest.cs
│ │ │ ├── TypeHelpersTest.cs
│ │ │ ├── UrlAttributeTest.cs
│ │ │ ├── ValueProviderUtilTest.cs
│ │ │ └── VersionTest.cs
│ │ └── packages.config
│ ├── Microsoft.Web.WebPages.OAuth.Test/
│ │ ├── Microsoft.Web.WebPages.OAuth.Test.csproj
│ │ ├── OAuthWebSecurityTest.cs
│ │ ├── PreAppStartCodeTest.cs
│ │ └── packages.config
│ ├── Settings.StyleCop
│ ├── System.Net.Http.Formatting.Test/
│ │ ├── ByteRangeStreamContentTest.cs
│ │ ├── CustomMultipartFormDataRemoteStreamProvider.cs
│ │ ├── DataSets/
│ │ │ ├── HttpTestData.cs
│ │ │ └── Types/
│ │ │ ├── DataContractEnum.cs
│ │ │ ├── DataContractType.cs
│ │ │ ├── DerivedDataContractType.cs
│ │ │ ├── DerivedFormUrlEncodedMediaTypeFormatter.cs
│ │ │ ├── DerivedJsonMediaTypeFormatter.cs
│ │ │ ├── DerivedWcfPocoType.cs
│ │ │ ├── DerivedXmlMediaTypeFormatter.cs
│ │ │ ├── DerivedXmlSerializableType.cs
│ │ │ ├── INotJsonSerializable.cs
│ │ │ ├── WcfPocoType.cs
│ │ │ └── XmlSerializableType.cs
│ │ ├── Formatting/
│ │ │ ├── BsonMediaTypeFormatterTests.cs
│ │ │ ├── BufferedMediaTypeFormatterTests.cs
│ │ │ ├── ContentNegotiationResultTest.cs
│ │ │ ├── DataContractJsonMediaTypeFormatterTests.cs
│ │ │ ├── DefaultContentNegotiatorTests.cs
│ │ │ ├── FormDataCollectionTests.cs
│ │ │ ├── FormUrlEncodedFromContentTests.cs
│ │ │ ├── FormUrlEncodedFromUriQueryTests.cs
│ │ │ ├── FormUrlEncodedJsonTests.cs
│ │ │ ├── FormUrlEncodedMediaTypeFormatterTests.cs
│ │ │ ├── JsonMediaTypeFormatterTests.cs
│ │ │ ├── JsonNetSerializationTest.cs
│ │ │ ├── JsonNetValidationTest.cs
│ │ │ ├── MediaTypeConstantsTests.cs
│ │ │ ├── MediaTypeFormatterCollectionTests.cs
│ │ │ ├── MediaTypeFormatterExtensionsTests.cs
│ │ │ ├── MediaTypeFormatterMatchTest.cs
│ │ │ ├── MediaTypeFormatterTestBase.cs
│ │ │ ├── MediaTypeFormatterTests.cs
│ │ │ ├── MediaTypeHeaderValueExtensionsTests.cs
│ │ │ ├── MediaTypeMappingTests.cs
│ │ │ ├── MediaTypeWithQualityHeaderValueComparerTests.cs
│ │ │ ├── ParsedMediaTypeHeaderValueTests.cs
│ │ │ ├── Parsers/
│ │ │ │ ├── FormUrlEncodedParserTests.cs
│ │ │ │ ├── HttpRequestHeaderParserTests.cs
│ │ │ │ ├── HttpRequestLineParserTests.cs
│ │ │ │ ├── HttpResponseHeaderParserTests.cs
│ │ │ │ ├── HttpStatusLineParserTests.cs
│ │ │ │ ├── InternetMessageFormatHeaderParserTests.cs
│ │ │ │ └── MimeMultipartParserTests.cs
│ │ │ ├── QueryStringMappingTests.cs
│ │ │ ├── RequestHeaderMappingTests.cs
│ │ │ ├── SerializerConsistencyTests.cs
│ │ │ ├── StringComparisonHelperTest.cs
│ │ │ ├── StringWithQualityHeaderValueComparerTests.cs
│ │ │ ├── XmlHttpRequestHeaderMappingTest.cs
│ │ │ ├── XmlMediaTypeFormatterTests.cs
│ │ │ └── XmlSerializerMediaTypeFormatterTests.cs
│ │ ├── FormattingUtilitiesTests.cs
│ │ ├── Handlers/
│ │ │ ├── HttpProgressEventArgsTest.cs
│ │ │ ├── ProgressContentTest.cs
│ │ │ ├── ProgressMessageHandlerTest.cs
│ │ │ ├── ProgressStreamTest.cs
│ │ │ └── ProgressWriteAsyncResultTest.cs
│ │ ├── Headers/
│ │ │ ├── CookieHeaderValueTest.cs
│ │ │ └── CookieStateTest.cs
│ │ ├── HttpClientExtensionsTest.cs
│ │ ├── HttpClientFactoryTest.cs
│ │ ├── HttpContentExtensionsTest.cs
│ │ ├── HttpContentFormDataExtensionsTest.cs
│ │ ├── HttpContentMessageExtensionsTests.cs
│ │ ├── HttpContentMultipartExtensionsTests.cs
│ │ ├── HttpHeaderExtensionsTest.cs
│ │ ├── HttpMessageContentTests.cs
│ │ ├── HttpRequestHeadersExtensionsTest.cs
│ │ ├── HttpRequestMessageCommonExtensionsTest.cs
│ │ ├── HttpResponseHeadersExtensionsTest.cs
│ │ ├── HttpUnsortedRequestTest.cs
│ │ ├── HttpUnsortedResponseTest.cs
│ │ ├── Internal/
│ │ │ ├── AsyncResultTest.cs
│ │ │ ├── ByteRangeStreamTest.cs
│ │ │ ├── ConcurrentDictionaryTests.cs
│ │ │ ├── DelegatingStreamTest.cs
│ │ │ ├── HttpValueCollectionTest.cs
│ │ │ ├── NonClosingDelegatingStreamTest.cs
│ │ │ └── TranscodingStreamTests.cs
│ │ ├── InvalidByteRangeExceptionTest.cs
│ │ ├── MimeBodyPartTest.cs
│ │ ├── Mocks/
│ │ │ ├── MockAsyncCallback.cs
│ │ │ ├── MockCompletedAsyncResult.cs
│ │ │ ├── MockContentNegotiator.cs
│ │ │ ├── MockDelegatingHandler.cs
│ │ │ ├── MockDelegatingStream.cs
│ │ │ ├── MockHttpContent.cs
│ │ │ ├── MockMediaTypeFormatter.cs
│ │ │ ├── MockMediaTypeMapping.cs
│ │ │ ├── MockNonClosingDelegatingStream.cs
│ │ │ ├── MockProgressEventHandler.cs
│ │ │ └── TestableHttpMessageHandler.cs
│ │ ├── MultipartFileDataTest.cs
│ │ ├── MultipartFileStreamProviderTests.cs
│ │ ├── MultipartFormDataRemoteStreamProviderTests.cs
│ │ ├── MultipartFormDataStreamProviderTests.cs
│ │ ├── MultipartMemoryStreamProviderTests.cs
│ │ ├── MultipartRelatedStreamProviderTests.cs
│ │ ├── MultipartRemoteFileDataTests.cs
│ │ ├── MultipartStreamProviderTestBase.cs
│ │ ├── ObjectContentOfTTests.cs
│ │ ├── ObjectContentTests.cs
│ │ ├── ParserData.cs
│ │ ├── PushStreamContentTest.cs
│ │ ├── RemoteStreamInfoTests.cs
│ │ ├── System.Net.Http.Formatting.Test.csproj
│ │ ├── UriExtensionsTests.cs
│ │ ├── UriQueryDataSet.cs
│ │ └── packages.config
│ ├── System.Net.Http.Formatting.ns1_3.Test/
│ │ └── System.Net.Http.Formatting.ns1_3.Test.csproj
│ ├── System.Net.Http.Formatting.ns2_0.Test/
│ │ └── System.Net.Http.Formatting.ns2_0.Test.csproj
│ ├── System.Web.Cors.Test/
│ │ ├── CorsEngineTest.cs
│ │ ├── CorsPolicyTest.cs
│ │ ├── CorsRequestContextTest.cs
│ │ ├── CorsResultTest.cs
│ │ ├── System.Web.Cors.Test.csproj
│ │ └── packages.config
│ ├── System.Web.Helpers.Test/
│ │ ├── ChartTest.cs
│ │ ├── ConversionUtilTest.cs
│ │ ├── CryptoTest.cs
│ │ ├── DynamicDictionary.cs
│ │ ├── DynamicHelperTest.cs
│ │ ├── DynamicWrapper.cs
│ │ ├── HelperResultTest.cs
│ │ ├── JsonTest.cs
│ │ ├── ObjectInfoTest.cs
│ │ ├── PreComputedGridDataSourceTest.cs
│ │ ├── ServerInfoTest.cs
│ │ ├── System.Web.Helpers.Test.csproj
│ │ ├── TestFiles/
│ │ │ └── xhtml11-flat.dtd
│ │ ├── WebCacheTest.cs
│ │ ├── WebGridDataSourceTest.cs
│ │ ├── WebGridTest.cs
│ │ ├── WebImageTest.cs
│ │ ├── WebMailTest.cs
│ │ ├── XhtmlAssert.cs
│ │ └── packages.config
│ ├── System.Web.Http.Cors.Test/
│ │ ├── AttributeBasedPolicyProviderFactoryTest.cs
│ │ ├── Controllers/
│ │ │ ├── DefaultController.cs
│ │ │ ├── ExternalActionSelectorAttribute.cs
│ │ │ ├── PerControllerConfigController.cs
│ │ │ ├── SampleController.cs
│ │ │ └── ThrowingController.cs
│ │ ├── CorsHttpConfigurationExtensionsTest.cs
│ │ ├── CorsHttpRequestMessageExtensionsTest.cs
│ │ ├── CorsHttpResponseMessageExtensionsTest.cs
│ │ ├── CorsMessageHandlerTest.cs
│ │ ├── DisableCorsAttributeTest.cs
│ │ ├── EnableCorsAttributeTest.cs
│ │ ├── HttpRequestMessageExtensions.cs
│ │ ├── System.Web.Http.Cors.Test.csproj
│ │ ├── Tracing/
│ │ │ ├── CorsEngineTracerTest.cs
│ │ │ ├── CorsPolicyProviderFactoryTracerTest.cs
│ │ │ └── CorsPolicyProviderTracerTest.cs
│ │ └── packages.config
│ ├── System.Web.Http.Integration.Test/
│ │ ├── ApiExplorer/
│ │ │ ├── ApiExplorerSettingsTest.cs
│ │ │ ├── AttributeRoutesTest.cs
│ │ │ ├── Controllers/
│ │ │ │ ├── AmbiguousActionController.cs
│ │ │ │ ├── AttributeRouteControllers.cs
│ │ │ │ ├── DocumentationController.cs
│ │ │ │ ├── HiddenActionController.cs
│ │ │ │ ├── HiddenController.cs
│ │ │ │ ├── ItemController.cs
│ │ │ │ ├── OverloadsController.cs
│ │ │ │ ├── ParameterSourceController.cs
│ │ │ │ └── ResponseTypeController.cs
│ │ │ ├── DocumentationProviders/
│ │ │ │ └── AttributeDocumentationProvider.cs
│ │ │ ├── DocumentationTest.cs
│ │ │ ├── Formatters/
│ │ │ │ └── ItemFormatter.cs
│ │ │ ├── FormattersTest.cs
│ │ │ ├── ParameterSourceTest.cs
│ │ │ ├── ResponseTypeAttributeTest.cs
│ │ │ ├── RouteConstraintsTest.cs
│ │ │ └── RoutesTest.cs
│ │ ├── ContentNegotiation/
│ │ │ ├── AcceptHeaderTests.cs
│ │ │ ├── ConnegController.cs
│ │ │ ├── ConnegItem.cs
│ │ │ ├── ContentNegotiationTestBase.cs
│ │ │ ├── CustomFormatterTests.cs
│ │ │ ├── DefaultContentNegotiatorTests.cs
│ │ │ └── HttpResponseReturnTests.cs
│ │ ├── Controllers/
│ │ │ ├── ActionAttributesTest.cs
│ │ │ ├── ActionReachabilityTest.cs
│ │ │ ├── ApiControllerActionSelectorTest.cs
│ │ │ ├── Apis/
│ │ │ │ ├── ActionAttributeTestController.cs
│ │ │ │ ├── EnumParameterOverloadsController.cs
│ │ │ │ ├── HeaderValueProviderFactory.cs
│ │ │ │ ├── ParameterAttributeController.cs
│ │ │ │ ├── ParameterTestController.cs
│ │ │ │ ├── RegularConfigController.cs
│ │ │ │ ├── SpecialConfigController.cs
│ │ │ │ ├── TestController.cs
│ │ │ │ ├── User.cs
│ │ │ │ ├── UserAddress.cs
│ │ │ │ ├── UsersController.cs
│ │ │ │ └── ValuesController.cs
│ │ │ ├── ControllerConfigurationTest.cs
│ │ │ └── Helpers/
│ │ │ └── ApiControllerHelper.cs
│ │ ├── Dispatcher/
│ │ │ └── CustomHttpControllerTypeResolverTest.cs
│ │ ├── ExceptionHandling/
│ │ │ ├── DuplicateControllers.cs
│ │ │ ├── ExceptionController.cs
│ │ │ ├── ExceptionHandlingTest.cs
│ │ │ ├── HttpResponseExceptionTest.cs
│ │ │ └── IncludeErrorDetailTest.cs
│ │ ├── ModelBinding/
│ │ │ ├── BodyBindingTests.cs
│ │ │ ├── CustomBindingTests.cs
│ │ │ ├── DefaultActionValueBinderTest.cs
│ │ │ ├── HttpContentBindingTests.cs
│ │ │ ├── ModelBindingController.cs
│ │ │ ├── ModelBindingTests.cs
│ │ │ ├── QueryStringBindingTests.cs
│ │ │ └── RouteBindingTests.cs
│ │ ├── Properties/
│ │ │ └── AssemblyInfo.cs
│ │ ├── System.Web.Http.Integration.Test.csproj
│ │ ├── Tracing/
│ │ │ ├── ITestTraceWriter.cs
│ │ │ ├── MemoryTraceWriter.cs
│ │ │ ├── NeverTracesTraceWriter.cs
│ │ │ └── TracingTest.cs
│ │ ├── Util/
│ │ │ ├── ApiExplorerHelper.cs
│ │ │ ├── ContextUtil.cs
│ │ │ ├── ConvertToStreamMessageHandler.cs
│ │ │ ├── HttpServerTestBase.cs
│ │ │ └── ScenarioHelper.cs
│ │ └── packages.config
│ ├── System.Web.Http.Owin.Test/
│ │ ├── ExceptionHandling/
│ │ │ ├── DefaultExceptionHandlerTests.cs
│ │ │ └── EmptyExceptionLoggerTests.cs
│ │ ├── HostAuthenticationAttributeTest.cs
│ │ ├── HostAuthenticationFilterTest.cs
│ │ ├── HttpMessageHandlerAdapterTest.cs
│ │ ├── HttpMessageHandlerExtensions.cs
│ │ ├── HttpMessageHandlerOptionsTests.cs
│ │ ├── IgnoreRouteTest.cs
│ │ ├── NonOwnedStreamTests.cs
│ │ ├── OwinBufferPolicySelectorTest.cs
│ │ ├── OwinExceptionCatchBlocksTests.cs
│ │ ├── OwinHostIntegrationTest.cs
│ │ ├── OwinHttpConfigurationExtensionsTest.cs
│ │ ├── OwinHttpRequestContextTests.cs
│ │ ├── OwinHttpRequestMessageExtensionsTest.cs
│ │ ├── OwinRequestExtensionsTests.cs
│ │ ├── OwinResponseExtensionsTests.cs
│ │ ├── PassiveAuthenticationMessageHandlerTest.cs
│ │ ├── System.Web.Http.Owin.Test.csproj
│ │ ├── WebApiAppBuilderExtensionsTest.cs
│ │ └── packages.config
│ ├── System.Web.Http.SelfHost.Test/
│ │ ├── Authentication/
│ │ │ ├── BasicOverHttpTest.cs
│ │ │ ├── CustomMessageHandler.cs
│ │ │ ├── CustomUsernamePasswordValidator.cs
│ │ │ ├── RequireAdminAttribute.cs
│ │ │ └── SampleController.cs
│ │ ├── Channels/
│ │ │ └── HttpBindingSecurityModeHelperTest.cs
│ │ ├── DeeplyNestedTypeTests.cs
│ │ ├── HttpSelfHostConfigurationTest.cs
│ │ ├── HttpSelfHostResponseTest.cs
│ │ ├── HttpSelfHostServerTest.cs
│ │ ├── MaxHttpCollectionKeyTests.cs
│ │ ├── SelfHostHttpRequestContextTests.cs
│ │ ├── ServiceModel/
│ │ │ ├── HostNameComparisonModeHelperTest.cs
│ │ │ └── TransferModeHelperTest.cs
│ │ ├── System.Web.Http.SelfHost.Test.csproj
│ │ └── packages.config
│ ├── System.Web.Http.SignalR.Test/
│ │ ├── HubControllerBaseTest.cs
│ │ ├── HubControllerOfTHubTest.cs
│ │ ├── HubControllerTest.cs
│ │ ├── System.Web.Http.SignalR.Test.csproj
│ │ └── packages.config
│ ├── System.Web.Http.Test/
│ │ ├── AuthorizeAttributeTest.cs
│ │ ├── Batch/
│ │ │ ├── BatchHttpRequestContextTests.cs
│ │ │ ├── BatchHttpRequestMessageExtensionsTest.cs
│ │ │ ├── BatchLearningTests.cs
│ │ │ ├── DefaultHttpBatchHandlerTest.cs
│ │ │ └── HttpBatchHandlerTest.cs
│ │ ├── Common/
│ │ │ └── TraceWriterExceptionMapperTest.cs
│ │ ├── Controllers/
│ │ │ ├── ActionFilterResultTests.cs
│ │ │ ├── ApiControllerActionInvokerTest.cs
│ │ │ ├── ApiControllerActionSelectorTest.cs
│ │ │ ├── ApiControllerTest.cs
│ │ │ ├── ApiControllerTestabilityTest.cs
│ │ │ ├── Apis/
│ │ │ │ ├── User.cs
│ │ │ │ ├── UsersController.cs
│ │ │ │ └── UsersRpcController.cs
│ │ │ ├── AuthenticationFilterResultTests.cs
│ │ │ ├── AuthorizationFilterResultTests.cs
│ │ │ ├── ExceptionFilterResultTests.cs
│ │ │ ├── FilterGroupingTests.cs
│ │ │ ├── HttpActionContextTest.cs
│ │ │ ├── HttpActionDescriptorTest.cs
│ │ │ ├── HttpConfigurationTest.cs
│ │ │ ├── HttpControllerContextTest.cs
│ │ │ ├── HttpControllerDescriptorTest.cs
│ │ │ ├── HttpParameterBindingTest.cs
│ │ │ ├── HttpParameterDescriptorTest.cs
│ │ │ ├── ParameterBindingExtensionsTest.cs
│ │ │ ├── ReflectedHttpActionDescriptorTest.cs
│ │ │ ├── ReflectedHttpParameterDescriptorTest.cs
│ │ │ ├── RequestBackedHttpRequestContextTests.cs
│ │ │ ├── ResponseMessageResultConverterTest.cs
│ │ │ ├── ValueResultConverterTest.cs
│ │ │ └── VoidResultConverterTest.cs
│ │ ├── Description/
│ │ │ ├── ApiExplorerTest.cs
│ │ │ └── ApiParameterDescriptionTest.cs
│ │ ├── Dispatcher/
│ │ │ ├── DefaultAssembliesResolverTest.cs
│ │ │ ├── DefaultHttpControllerActivatorTest.cs
│ │ │ ├── DefaultHttpControllerSelectorTest.cs
│ │ │ ├── DefaultHttpControllerTypeResolverTest.cs
│ │ │ ├── HttpControllerDispatcherTest.cs
│ │ │ ├── HttpErrorTest.cs
│ │ │ └── HttpRoutingDispatcherTest.cs
│ │ ├── ExceptionHandling/
│ │ │ ├── CompositeExceptionLoggerTests.cs
│ │ │ ├── DefaultExceptionHandlerTests.cs
│ │ │ ├── EmptyExceptionHandlerTests.cs
│ │ │ ├── ExceptionCatchBlocksTests.cs
│ │ │ ├── ExceptionContextCatchBlockTests.cs
│ │ │ ├── ExceptionContextTests.cs
│ │ │ ├── ExceptionHandlerContextTests.cs
│ │ │ ├── ExceptionHandlerExtensionsTests.cs
│ │ │ ├── ExceptionHandlerTests.cs
│ │ │ ├── ExceptionLoggerContextTests.cs
│ │ │ ├── ExceptionLoggerExtensionsTests.cs
│ │ │ ├── ExceptionLoggerTests.cs
│ │ │ ├── ExceptionServicesTests.cs
│ │ │ └── LastChanceExceptionHandlerTests.cs
│ │ ├── Filters/
│ │ │ ├── ActionDescriptorFilterProviderTest.cs
│ │ │ ├── ActionFilterAttributeTest.cs
│ │ │ ├── AuthorizationFilterAttributeTest.cs
│ │ │ ├── ConfigurationFilterProviderTest.cs
│ │ │ ├── ExceptionFilterAttributeTest.cs
│ │ │ ├── FilterAttributeTest.cs
│ │ │ ├── FilterInfoComparerTest.cs
│ │ │ ├── FilterInfoTest.cs
│ │ │ ├── HttpActionExecutedContextTest.cs
│ │ │ ├── HttpAuthenticationChallengeContextTests.cs
│ │ │ ├── HttpAuthenticationContextTests.cs
│ │ │ └── HttpFilterCollectionTest.cs
│ │ ├── Hosting/
│ │ │ ├── HttpMessageHandlerExtensions.cs
│ │ │ ├── HttpRouteTest.cs
│ │ │ └── SuppressHostPrincipalMessageHandlerTest.cs
│ │ ├── HttpConfigurationExtensionsTest.cs
│ │ ├── HttpErrorKeysTest.cs
│ │ ├── HttpMessageHandlerExtensions.cs
│ │ ├── HttpRequestMessageExtensionsTest.cs
│ │ ├── HttpResponseExceptionTest.cs
│ │ ├── HttpResponseMessageExtensionsTest.cs
│ │ ├── HttpRouteCollectionExtensionsTest.cs
│ │ ├── HttpRouteCollectionTest.cs
│ │ ├── HttpServerTest.cs
│ │ ├── Internal/
│ │ │ ├── CollectionModelBinderUtilTest.cs
│ │ │ └── TypeActivatorTest.cs
│ │ ├── Metadata/
│ │ │ ├── ModelMetadataTest.cs
│ │ │ └── Providers/
│ │ │ ├── AssociatedMetadataProviderTest.cs
│ │ │ └── DataAnnotationsModelMetadataProviderTest.cs
│ │ ├── ModelBinding/
│ │ │ ├── Binders/
│ │ │ │ ├── ArrayModelBinderProviderTest.cs
│ │ │ │ ├── ArrayModelBinderTest.cs
│ │ │ │ ├── CollectionModelBinderProviderTest.cs
│ │ │ │ ├── CollectionModelBinderTest.cs
│ │ │ │ ├── ComplexModelDtoModelBinderProviderTest.cs
│ │ │ │ ├── ComplexModelDtoModelBinderTest.cs
│ │ │ │ ├── ComplexModelDtoResultTest.cs
│ │ │ │ ├── ComplexModelDtoTest.cs
│ │ │ │ ├── DictionaryModelBinderProviderTest.cs
│ │ │ │ ├── DictionaryModelBinderTest.cs
│ │ │ │ ├── KeyValuePairModelBinderProviderTest.cs
│ │ │ │ ├── KeyValuePairModelBinderTest.cs
│ │ │ │ ├── KeyValuePairModelBinderUtilTest.cs
│ │ │ │ ├── MutableObjectModelBinderProviderTest.cs
│ │ │ │ ├── MutableObjectModelBinderTest.cs
│ │ │ │ ├── SimpleModelBinderProviderTest.cs
│ │ │ │ ├── TypeConverterModelBinderProviderTest.cs
│ │ │ │ ├── TypeConverterModelBinderTest.cs
│ │ │ │ ├── TypeMatchModelBinderProviderTest.cs
│ │ │ │ └── TypeMatchModelBinderTest.cs
│ │ │ ├── CompositeModelBinderTest.cs
│ │ │ ├── DefaultActionValueBinderTest.cs
│ │ │ ├── FormDataCollectionExtensionsTest.cs
│ │ │ ├── FormatterParameterBindingTest.cs
│ │ │ ├── HttpBindingBehaviorAttributeTest.cs
│ │ │ ├── HttpParameterBindingExtensionsTest.cs
│ │ │ ├── ModelBinderAttributeTest.cs
│ │ │ ├── ModelBinderConfigTest.cs
│ │ │ ├── ModelBindingContextTest.cs
│ │ │ ├── ModelBindingEndToEndTests.cs
│ │ │ ├── ModelBindingUtilTest.cs
│ │ │ ├── ParameterBindingProvidersTest.cs
│ │ │ └── SharedModels/
│ │ │ ├── Address.cs
│ │ │ ├── PeopleModel.cs
│ │ │ ├── Person.cs
│ │ │ ├── StreetAddress.cs
│ │ │ └── User.cs
│ │ ├── Properties/
│ │ │ └── AssemblyInfo.cs
│ │ ├── Resources.Designer.cs
│ │ ├── Resources.resx
│ │ ├── Results/
│ │ │ ├── BadRequestErrorMessageResultTests.cs
│ │ │ ├── BadRequestResultTests.cs
│ │ │ ├── ConflictResultTests.cs
│ │ │ ├── CreatedAtRouteNegotiatedContentResultTests.cs
│ │ │ ├── CreatedNegotiatedContentResultTests.cs
│ │ │ ├── ExceptionResultTests.cs
│ │ │ ├── FormattedContentResultTests.cs
│ │ │ ├── InternalServerErrorResultTests.cs
│ │ │ ├── InvalidModelStateResultTests.cs
│ │ │ ├── JsonResultTests.cs
│ │ │ ├── NegotiatedContentResultTests.cs
│ │ │ ├── NotFoundResultTests.cs
│ │ │ ├── OkNegotiatedContentResultTests.cs
│ │ │ ├── OkResultTests.cs
│ │ │ ├── RedirectResultTests.cs
│ │ │ ├── RedirectToRouteResultTests.cs
│ │ │ ├── ResponseMessageResultTests.cs
│ │ │ ├── StatusCodeResultTests.cs
│ │ │ └── UnauthorizedResultTests.cs
│ │ ├── Routing/
│ │ │ ├── AttributeRoutingTest.cs
│ │ │ ├── DefaultDirectRouteProviderTests.cs
│ │ │ ├── DirectRouteProviderContextTests.cs
│ │ │ ├── HttpRouteTest.cs
│ │ │ ├── HttpRouteValueDictionaryTest.cs
│ │ │ ├── LinkGenerationRouteTests.cs
│ │ │ ├── MediaTypeFormatterExtensionsTests.cs
│ │ │ ├── RouteAttributeTests.cs
│ │ │ ├── UriPathExtensionMappingTests.cs
│ │ │ └── UrlHelperTest.cs
│ │ ├── Services/
│ │ │ ├── ControllerServicesTests.cs
│ │ │ ├── DecoratorTests.cs
│ │ │ ├── DefaultServicesTests.cs
│ │ │ └── ServicesExtensionsTests.cs
│ │ ├── System.Web.Http.Test.csproj
│ │ ├── Tracing/
│ │ │ ├── FormattingUtilitiesTest.cs
│ │ │ ├── HttpRequestMessageExtensionsTest.cs
│ │ │ ├── ITraceWriterExtensionsTest.cs
│ │ │ ├── TestTraceWriter.cs
│ │ │ ├── TraceKindHelperTest.cs
│ │ │ ├── TraceLevelHelperTest.cs
│ │ │ ├── TraceManagerTest.cs
│ │ │ ├── TraceRecordComparer.cs
│ │ │ ├── TraceRecordTest.cs
│ │ │ ├── TracerCorrectnessTest.cs
│ │ │ └── Tracers/
│ │ │ ├── ActionFilterAttributeTracerTest.cs
│ │ │ ├── ActionFilterTracerTest.cs
│ │ │ ├── ActionValueBinderTracerTest.cs
│ │ │ ├── AuthenticationFilterTracerTests.cs
│ │ │ ├── AuthorizationFilterAttributeTracerTest.cs
│ │ │ ├── AuthorizationFilterTracerTest.cs
│ │ │ ├── BufferedMediaTypeFormatterTracerTest.cs
│ │ │ ├── ContentNegotiatorTracerTest.cs
│ │ │ ├── DefaultHttpControllerTypeResolverTracerTest.cs
│ │ │ ├── ExceptionFilterAttributeTracerTest.cs
│ │ │ ├── ExceptionFilterTracerTest.cs
│ │ │ ├── FilterTracerTest.cs
│ │ │ ├── FormUrlEncodedMediaTypeFormatterTracerTest.cs
│ │ │ ├── FormatterParameterBindingTracerTest.cs
│ │ │ ├── HttpActionBindingTracerTest.cs
│ │ │ ├── HttpActionDescriptorTracerTest.cs
│ │ │ ├── HttpActionInvokerTracerTest.cs
│ │ │ ├── HttpActionSelectorTracerTest.cs
│ │ │ ├── HttpControllerActivatorTracerTest.cs
│ │ │ ├── HttpControllerDescriptorTracerTest.cs
│ │ │ ├── HttpControllerSelectorTracerTest.cs
│ │ │ ├── HttpControllerTracerTest.cs
│ │ │ ├── HttpParameterBindingTracerTest.cs
│ │ │ ├── JsonMediaTypeFormatterTracerTest.cs
│ │ │ ├── MediaTypeFormatterTracerTest.cs
│ │ │ ├── MediaTypeFormatterTracerTestBase.cs
│ │ │ ├── MessageHandlerTracerTest.cs
│ │ │ ├── OverrideFilterTracerTests.cs
│ │ │ ├── ReadWriteMediaTypeFormatterTracerTestBase.cs
│ │ │ ├── RequestMessageHandlerTracerTest.cs
│ │ │ └── XmlMediaTypeFormatterTracerTest.cs
│ │ ├── Util/
│ │ │ ├── ContextUtil.cs
│ │ │ └── SimpleHttpValueProvider.cs
│ │ ├── Validation/
│ │ │ ├── DefaultBodyModelValidatorTest.cs
│ │ │ ├── ModelStateFormatterLoggerTest.cs
│ │ │ ├── ModelValidationNodeTest.cs
│ │ │ ├── ModelValidationRequiredMemberSelectorTest.cs
│ │ │ ├── ModelValidationResultTest.cs
│ │ │ ├── ModelValidatorTest.cs
│ │ │ ├── Providers/
│ │ │ │ ├── AssociatedValidatorProviderTest.cs
│ │ │ │ ├── DataAnnotationsModelValidatorProviderTest.cs
│ │ │ │ ├── DataMemberModelValidatorProviderTest.cs
│ │ │ │ └── InvalidModelValidatorProviderTest.cs
│ │ │ ├── ReferenceEqualityComparerTest.cs
│ │ │ └── Validators/
│ │ │ ├── DataAnnotationsModelValidatorTest.cs
│ │ │ └── ErrorModelValidatorTest.cs
│ │ ├── ValueProviders/
│ │ │ ├── Providers/
│ │ │ │ ├── ElementalValueProviderTest.cs
│ │ │ │ ├── NameValuePairsValueProviderTest.cs
│ │ │ │ ├── QueryStringValueProviderFactoryTest.cs
│ │ │ │ ├── QueryStringValueProviderTest.cs
│ │ │ │ ├── RouteDataValueProviderFactoryTest.cs
│ │ │ │ └── RouteDataValueProviderTest.cs
│ │ │ └── ValueProviderResultTest.cs
│ │ └── packages.config
│ ├── System.Web.Http.Tracing.Test/
│ │ ├── HttpConfigurationTracingExtensionsTest.cs
│ │ ├── System.Web.Http.Tracing.Test.csproj
│ │ ├── SystemDiagnosticsTraceWriterTest.cs
│ │ └── packages.config
│ ├── System.Web.Http.WebHost.Test/
│ │ ├── BatchingTest.cs
│ │ ├── GlobalConfigurationTest.cs
│ │ ├── HttpControllerHandlerTest.cs
│ │ ├── HttpRequestMessageExtensions.cs
│ │ ├── Properties/
│ │ │ └── AssemblyInfo.cs
│ │ ├── RouteCollectionExtensionsTest.cs
│ │ ├── Routing/
│ │ │ ├── HostedHttpRouteCollectionTest.cs
│ │ │ ├── HostedUrlHelperTest.cs
│ │ │ ├── HttpContextBaseExtensionsTest.cs
│ │ │ ├── HttpRequestMessageWrapperTest.cs
│ │ │ ├── HttpRouteExceptionHandlerTests.cs
│ │ │ ├── HttpRouteExceptionRouteHandlerTests.cs
│ │ │ └── HttpWebRouteTests.cs
│ │ ├── SeekableBufferedRequestStreamTest.cs
│ │ ├── SuppressFormsAuthRedirectHelperTest.cs
│ │ ├── System.Web.Http.WebHost.Test.csproj
│ │ ├── WebHostBufferPolicySelectorTest.cs
│ │ ├── WebHostExceptionCatchBlocksTests.cs
│ │ ├── WebHostExceptionHandlerTests.cs
│ │ ├── WebHostHttpRequestContextTests.cs
│ │ └── packages.config
│ ├── System.Web.Mvc.Test/
│ │ ├── Ajax/
│ │ │ └── Test/
│ │ │ ├── AjaxExtensionsTest.cs
│ │ │ └── AjaxOptionsTest.cs
│ │ ├── Async/
│ │ │ └── Test/
│ │ │ ├── AsyncActionDescriptorTest.cs
│ │ │ ├── AsyncActionMethodSelectorTest.cs
│ │ │ ├── AsyncControllerActionInvokerTest.cs
│ │ │ ├── AsyncManagerTest.cs
│ │ │ ├── AsyncResultWrapperTest.cs
│ │ │ ├── MockAsyncResult.cs
│ │ │ ├── OperationCounterTest.cs
│ │ │ ├── ReflectedAsyncActionDescriptorTest.cs
│ │ │ ├── ReflectedAsyncControllerDescriptorTest.cs
│ │ │ ├── SignalContainer.cs
│ │ │ ├── SimpleAsyncResultTest.cs
│ │ │ ├── SingleEntryGateTest.cs
│ │ │ ├── SynchronizationContextUtilTest.cs
│ │ │ ├── SynchronousOperationExceptionTest.cs
│ │ │ ├── TaskAsyncActionDescriptorTest.cs
│ │ │ ├── TaskWrapperAsyncResultTest.cs
│ │ │ └── TriggerListenerTest.cs
│ │ ├── ExpressionUtil/
│ │ │ └── Test/
│ │ │ ├── BinaryExpressionFingerprintTest.cs
│ │ │ ├── CachedExpressionCompilerTest.cs
│ │ │ ├── ConditionalExpressionFingerprintTest.cs
│ │ │ ├── ConstantExpressionFingerprintTest.cs
│ │ │ ├── DefaultExpressionFingerprintTest.cs
│ │ │ ├── DummyExpressionFingerprint.cs
│ │ │ ├── ExpressionFingerprintTest.cs
│ │ │ ├── FingerprintingExpressionVisitorTest.cs
│ │ │ ├── HoistingExpressionVisitorTest.cs
│ │ │ ├── IndexExpressionFingerprintTest.cs
│ │ │ ├── LambdaExpressionFingerprintTest.cs
│ │ │ ├── MemberExpressionFingerprintTest.cs
│ │ │ ├── MethodCallExpressionFingerprintTest.cs
│ │ │ ├── ParameterExpressionFingerprintTest.cs
│ │ │ ├── TypeBinaryExpressionFingerprintTest.cs
│ │ │ └── UnaryExpressionFingerprintTest.cs
│ │ ├── Html/
│ │ │ └── Test/
│ │ │ ├── ChildActionExtensionsTest.cs
│ │ │ ├── DefaultDisplayTemplatesTest.cs
│ │ │ ├── DefaultEditorTemplatesTest.cs
│ │ │ ├── DisplayExtensionsTest.cs
│ │ │ ├── DisplayNameExtensionsTest.cs
│ │ │ ├── DisplayTextExtensionsTest.cs
│ │ │ ├── EditorExtensionsTest.cs
│ │ │ ├── EncodedDataSets.cs
│ │ │ ├── EnumHelperTest.cs
│ │ │ ├── FormExtensionsTest.cs
│ │ │ ├── InputExtensionsTest.cs
│ │ │ ├── LabelExtensionsTest.cs
│ │ │ ├── LinkExtensionsTest.cs
│ │ │ ├── MetadataOverrideScope.cs
│ │ │ ├── MvcFormTest.cs
│ │ │ ├── NameExtensionsTest.cs
│ │ │ ├── PartialExtensionsTest.cs
│ │ │ ├── RenderPartialExtensionsTest.cs
│ │ │ ├── SelectExtensionsTest.cs
│ │ │ ├── TemplateHelpersSafeScope.cs
│ │ │ ├── TemplateHelpersTest.cs
│ │ │ ├── TextAreaExtensionsTest.cs
│ │ │ ├── ValidationExtensionsTest.cs
│ │ │ └── ValueExtensionsTest.cs
│ │ ├── Properties/
│ │ │ ├── AssemblyInfo.cs
│ │ │ ├── Resources.Designer.cs
│ │ │ └── Resources.resx
│ │ ├── Razor/
│ │ │ └── Test/
│ │ │ ├── MvcCSharpRazorCodeGeneratorTest.cs
│ │ │ ├── MvcCSharpRazorCodeParserTest.cs
│ │ │ ├── MvcVBRazorCodeParserTest.cs
│ │ │ └── MvcWebPageRazorHostTest.cs
│ │ ├── Routing/
│ │ │ ├── AttributeRoutingLinkGenerationTest.cs
│ │ │ ├── AttributeRoutingMapperTest.cs
│ │ │ ├── AttributeRoutingTest.cs
│ │ │ ├── DefaultDirectRouteProviderTest.cs
│ │ │ ├── DirectRouteCandidateTest.cs
│ │ │ ├── DirectRouteTestHelpers.cs
│ │ │ ├── RouteAttributeTests.cs
│ │ │ └── RouteCollectionAttributeRoutingExtensionsTests.cs
│ │ ├── System.Web.Mvc.Test.csproj
│ │ ├── Test/
│ │ │ ├── AcceptVerbsAttributeTest.cs
│ │ │ ├── ActionDescriptorTest.cs
│ │ │ ├── ActionExecutedContextTest.cs
│ │ │ ├── ActionExecutingContextTest.cs
│ │ │ ├── ActionFilterAttributeTest.cs
│ │ │ ├── ActionMethodDispatcherCacheTest.cs
│ │ │ ├── ActionMethodDispatcherTest.cs
│ │ │ ├── ActionMethodSelectorTest.cs
│ │ │ ├── ActionNameAttributeTest.cs
│ │ │ ├── AdditionalMetadataAttributeTest.cs
│ │ │ ├── AjaxHelperOfTModelTest.cs
│ │ │ ├── AjaxHelperTest.cs
│ │ │ ├── AjaxRequestExtensionsTest.cs
│ │ │ ├── AllowHtmlAttributeTest.cs
│ │ │ ├── AreaHelpersTest.cs
│ │ │ ├── AreaRegistrationContextTest.cs
│ │ │ ├── AreaRegistrationTest.cs
│ │ │ ├── AssociatedMetadataProviderTest.cs
│ │ │ ├── AssociatedValidatorProviderTest.cs
│ │ │ ├── AsyncControllerTest.cs
│ │ │ ├── AsyncTimeoutAttributeTest.cs
│ │ │ ├── AuthorizationContextTest.cs
│ │ │ ├── AuthorizeAttributeTest.cs
│ │ │ ├── BindAttributeTest.cs
│ │ │ ├── BuildManagerCompiledViewTest.cs
│ │ │ ├── BuildManagerViewEngineTest.cs
│ │ │ ├── ByteArrayModelBinderTest.cs
│ │ │ ├── CachedAssociatedMetadataProviderTest.cs
│ │ │ ├── CachedDataAnnotationsModelMetadataProviderTest.cs
│ │ │ ├── CancellationTokenModelBinderTest.cs
│ │ │ ├── ChildActionOnlyAttributeTest.cs
│ │ │ ├── ChildActionValueProviderFactoryTest.cs
│ │ │ ├── ClientDataTypeModelValidatorProviderTest.cs
│ │ │ ├── CompareAttributeAdapterTest.cs
│ │ │ ├── CompareAttributeTest.cs
│ │ │ ├── ContentResultTest.cs
│ │ │ ├── ControllerActionInvokerTest.cs
│ │ │ ├── ControllerBaseTest.cs
│ │ │ ├── ControllerBuilderTest.cs
│ │ │ ├── ControllerContextTest.cs
│ │ │ ├── ControllerDescriptorCacheTest.cs
│ │ │ ├── ControllerDescriptorTest.cs
│ │ │ ├── ControllerInstanceFilterProviderTest.cs
│ │ │ ├── ControllerTest.cs
│ │ │ ├── CopyOnWriteDictionaryTest.cs
│ │ │ ├── DataAnnotationsModelMetadataProviderTest.cs
│ │ │ ├── DataAnnotationsModelMetadataProviderTestBase.cs
│ │ │ ├── DataAnnotationsModelValidatorProviderTest.cs
│ │ │ ├── DataAnnotationsModelValidatorTest.cs
│ │ │ ├── DataErrorInfoModelValidatorProviderTest.cs
│ │ │ ├── DataTypeUtilTest.cs
│ │ │ ├── DefaultControllerFactoryTest.cs
│ │ │ ├── DefaultModelBinderTest.cs
│ │ │ ├── DefaultViewLocationCacheTest.cs
│ │ │ ├── DependencyResolverTest.cs
│ │ │ ├── DescriptorUtilTest.cs
│ │ │ ├── DictionaryHelpersTest.cs
│ │ │ ├── DictionaryValueProviderTest.cs
│ │ │ ├── DynamicViewDataDictionaryTest.cs
│ │ │ ├── EmptyModelValidatorProviderTest.cs
│ │ │ ├── ExceptionContextTest.cs
│ │ │ ├── ExpressionHelperTest.cs
│ │ │ ├── FieldValidationMetadataTest.cs
│ │ │ ├── FileContentResultTest.cs
│ │ │ ├── FilePathResultTest.cs
│ │ │ ├── FileResultTest.cs
│ │ │ ├── FileStreamResultTest.cs
│ │ │ ├── FilterAttributeFilterProviderTest.cs
│ │ │ ├── FilterInfoTest.cs
│ │ │ ├── FilterProviderCollectionTest.cs
│ │ │ ├── FilterProvidersTest.cs
│ │ │ ├── FilterTest.cs
│ │ │ ├── FormCollectionTest.cs
│ │ │ ├── FormContextTest.cs
│ │ │ ├── FormValueProviderFactoryTest.cs
│ │ │ ├── GlobalFilterCollectionTest.cs
│ │ │ ├── HandleErrorAttributeTest.cs
│ │ │ ├── HandleErrorInfoTest.cs
│ │ │ ├── HtmlHelperOfTModelTest.cs
│ │ │ ├── HtmlHelperTest.cs
│ │ │ ├── HttpDeleteAttributeTest.cs
│ │ │ ├── HttpFileCollectionValueProviderFactoryTest.cs
│ │ │ ├── HttpFileCollectionValueProviderTest.cs
│ │ │ ├── HttpGetAttributeTest.cs
│ │ │ ├── HttpHandlerUtilTest.cs
│ │ │ ├── HttpHeadAttributeTest.cs
│ │ │ ├── HttpNotFoundResultTest.cs
│ │ │ ├── HttpOptionsAttributeTest.cs
│ │ │ ├── HttpPatchAttributeTest.cs
│ │ │ ├── HttpPostAttributeTest.cs
│ │ │ ├── HttpPostedFileBaseModelBinderTest.cs
│ │ │ ├── HttpPutAttributeTest.cs
│ │ │ ├── HttpRequestExtensionsTest.cs
│ │ │ ├── HttpStatusCodeResultTest.cs
│ │ │ ├── HttpUnauthorizedResultTest.cs
│ │ │ ├── HttpVerbAttributeHelper.cs
│ │ │ ├── JQueryFormValueProviderFactoryTest.cs
│ │ │ ├── JavaScriptResultTest.cs
│ │ │ ├── JsonResultTest.cs
│ │ │ ├── JsonValueProviderFactoryTest.cs
│ │ │ ├── LinqBinaryModelBinderTest.cs
│ │ │ ├── MaxLengthAttributeAdapterTest.cs
│ │ │ ├── MinLengthAttributeAdapterTest.cs
│ │ │ ├── MockBuildManager.cs
│ │ │ ├── MockHelpers.cs
│ │ │ ├── MockableUnvalidatedRequestValues.cs
│ │ │ ├── ModelBinderAttributeTest.cs
│ │ │ ├── ModelBinderDictionaryTest.cs
│ │ │ ├── ModelBinderProviderCollectionTest.cs
│ │ │ ├── ModelBinderProvidersTest.cs
│ │ │ ├── ModelBindersTest.cs
│ │ │ ├── ModelBindingContextTest.cs
│ │ │ ├── ModelClientValidationRuleTest.cs
│ │ │ ├── ModelErrorCollectionTest.cs
│ │ │ ├── ModelErrorTest.cs
│ │ │ ├── ModelMetadataProvidersTest.cs
│ │ │ ├── ModelMetadataTest.cs
│ │ │ ├── ModelStateDictionaryTest.cs
│ │ │ ├── ModelStateTest.cs
│ │ │ ├── ModelValidationResultTest.cs
│ │ │ ├── ModelValidatorProviderCollectionTest.cs
│ │ │ ├── ModelValidatorProvidersTest.cs
│ │ │ ├── ModelValidatorTest.cs
│ │ │ ├── MultiSelectListTest.cs
│ │ │ ├── MultiServiceResolverTest.cs
│ │ │ ├── MvcHandlerTest.cs
│ │ │ ├── MvcHtmlStringTest.cs
│ │ │ ├── MvcHttpHandlerTest.cs
│ │ │ ├── MvcRouteHandlerTest.cs
│ │ │ ├── MvcTestHelper.cs
│ │ │ ├── MvcWebRazorHostFactoryTest.cs
│ │ │ ├── NameValueCollectionExtensionsTest.cs
│ │ │ ├── NameValueCollectionValueProviderTest.cs
│ │ │ ├── NoAsyncTimeoutAttributeTest.cs
│ │ │ ├── NonActionAttributeTest.cs
│ │ │ ├── OutputCacheAttributeTest.cs
│ │ │ ├── OverrideActionFiltersAttributeTests.cs
│ │ │ ├── OverrideAuthenticationAttributeTests.cs
│ │ │ ├── OverrideAuthorizationAttributeTests.cs
│ │ │ ├── OverrideExceptionFiltersAttributeTests.cs
│ │ │ ├── OverrideFiltersAttributeTests.cs
│ │ │ ├── OverrideResultFiltersAttributeTests.cs
│ │ │ ├── ParameterBindingInfoTest.cs
│ │ │ ├── ParameterDescriptorTest.cs
│ │ │ ├── ParameterInfoUtilTest.cs
│ │ │ ├── PartialViewResultTest.cs
│ │ │ ├── PreApplicationStartCodeTest.cs
│ │ │ ├── QueryStringValueProviderFactoryTest.cs
│ │ │ ├── RangeAttributeAdapterTest.cs
│ │ │ ├── RazorViewEngineTest.cs
│ │ │ ├── RazorViewTest.cs
│ │ │ ├── ReaderWriterCacheTest.cs
│ │ │ ├── RedirectResultTest.cs
│ │ │ ├── RedirectToRouteResultTest.cs
│ │ │ ├── ReflectedActionDescriptorTest.cs
│ │ │ ├── ReflectedControllerDescriptorTest.cs
│ │ │ ├── ReflectedParameterBindingInfoTest.cs
│ │ │ ├── ReflectedParameterDescriptorTest.cs
│ │ │ ├── RegularExpressionAttributeAdapterTest.cs
│ │ │ ├── RemoteAttributeTest.cs
│ │ │ ├── RequireHttpsAttributeTest.cs
│ │ │ ├── RequiredAttributeAdapterTest.cs
│ │ │ ├── ResultExecutedContextTest.cs
│ │ │ ├── ResultExecutingContextTest.cs
│ │ │ ├── RouteCollectionExtensionsTest.cs
│ │ │ ├── RouteDataValueProviderFactoryTest.cs
│ │ │ ├── SelectListTest.cs
│ │ │ ├── SessionStateTempDataProviderTest.cs
│ │ │ ├── SingleServiceResolverTest.cs
│ │ │ ├── StringLengthAttributeAdapterTest.cs
│ │ │ ├── TempDataDictionaryTest.cs
│ │ │ ├── TypeCacheSerializerTest.cs
│ │ │ ├── TypeCacheUtilTest.cs
│ │ │ ├── TypeHelpersTest.cs
│ │ │ ├── UrlHelperTest.cs
│ │ │ ├── UrlParameterTest.cs
│ │ │ ├── ValidatableObjectAdapterTest.cs
│ │ │ ├── ValidateAntiForgeryTokenAttributeTest.cs
│ │ │ ├── ValidateInputAttributeTest.cs
│ │ │ ├── ValueProviderCollectionTest.cs
│ │ │ ├── ValueProviderDictionaryTest.cs
│ │ │ ├── ValueProviderFactoriesTest.cs
│ │ │ ├── ValueProviderFactoryCollectionTest.cs
│ │ │ ├── ValueProviderResultTest.cs
│ │ │ ├── ValueProviderUtilTest.cs
│ │ │ ├── ViewContextTest.cs
│ │ │ ├── ViewDataDictionaryTest.cs
│ │ │ ├── ViewDataInfoTest.cs
│ │ │ ├── ViewEngineCollectionTest.cs
│ │ │ ├── ViewEngineResultTest.cs
│ │ │ ├── ViewEnginesTest.cs
│ │ │ ├── ViewMasterPageControlBuilderTest.cs
│ │ │ ├── ViewMasterPageTest.cs
│ │ │ ├── ViewPageControlBuilderTest.cs
│ │ │ ├── ViewPageTest.cs
│ │ │ ├── ViewResultBaseTest.cs
│ │ │ ├── ViewResultTest.cs
│ │ │ ├── ViewStartPageTest.cs
│ │ │ ├── ViewTypeParserFilterTest.cs
│ │ │ ├── ViewUserControlControlBuilderTest.cs
│ │ │ ├── ViewUserControlTest.cs
│ │ │ ├── VirtualPathProviderViewEngineTest.cs
│ │ │ ├── WebFormViewEngineTest.cs
│ │ │ └── WebFormViewTest.cs
│ │ ├── Util/
│ │ │ ├── AnonymousObject.cs
│ │ │ ├── DictionaryHelper.cs
│ │ │ ├── HttpContextHelpers.cs
│ │ │ ├── MvcHelper.cs
│ │ │ ├── Resolver.cs
│ │ │ ├── SimpleValueProvider.cs
│ │ │ └── SimpleViewDataContainer.cs
│ │ └── packages.config
│ ├── System.Web.Razor.Test/
│ │ ├── CSharpRazorCodeLanguageTest.cs
│ │ ├── CodeCompileUnitExtensions.cs
│ │ ├── Editor/
│ │ │ └── RazorEditorParserTest.cs
│ │ ├── Framework/
│ │ │ ├── BlockExtensions.cs
│ │ │ ├── BlockTypes.cs
│ │ │ ├── CodeParserTestBase.cs
│ │ │ ├── CsHtmlCodeParserTestBase.cs
│ │ │ ├── CsHtmlMarkupParserTestBase.cs
│ │ │ ├── ErrorCollector.cs
│ │ │ ├── MarkupParserTestBase.cs
│ │ │ ├── ParserTestBase.cs
│ │ │ ├── RawTextSymbol.cs
│ │ │ ├── TestSpanBuilder.cs
│ │ │ ├── VBHtmlCodeParserTestBase.cs
│ │ │ └── VBHtmlMarkupParserTestBase.cs
│ │ ├── Generator/
│ │ │ ├── CSharpRazorCodeGeneratorTest.cs
│ │ │ ├── GeneratedCodeMappingTest.cs
│ │ │ ├── PaddingTest.cs
│ │ │ ├── RazorCodeGeneratorTest.cs
│ │ │ ├── TabTest.cs
│ │ │ ├── TestSpan.cs
│ │ │ └── VBRazorCodeGeneratorTest.cs
│ │ ├── Parser/
│ │ │ ├── BlockTest.cs
│ │ │ ├── CSharp/
│ │ │ │ ├── CSharpAutoCompleteTest.cs
│ │ │ │ ├── CSharpBlockTest.cs
│ │ │ │ ├── CSharpDirectivesTest.cs
│ │ │ │ ├── CSharpErrorTest.cs
│ │ │ │ ├── CSharpExplicitExpressionTest.cs
│ │ │ │ ├── CSharpHelperTest.cs
│ │ │ │ ├── CSharpImplicitExpressionTest.cs
│ │ │ │ ├── CSharpLayoutDirectiveTest.cs
│ │ │ │ ├── CSharpNestedStatementsTest.cs
│ │ │ │ ├── CSharpRazorCommentsTest.cs
│ │ │ │ ├── CSharpReservedWordsTest.cs
│ │ │ │ ├── CSharpSectionTest.cs
│ │ │ │ ├── CSharpSpecialBlockTest.cs
│ │ │ │ ├── CSharpStatementTest.cs
│ │ │ │ ├── CSharpTemplateTest.cs
│ │ │ │ ├── CSharpToMarkupSwitchTest.cs
│ │ │ │ ├── CSharpVerbatimBlockTest.cs
│ │ │ │ ├── CSharpWhitespaceHandlingTest.cs
│ │ │ │ └── CsHtmlDocumentTest.cs
│ │ │ ├── CallbackParserListenerTest.cs
│ │ │ ├── Html/
│ │ │ │ ├── HtmlAttributeTest.cs
│ │ │ │ ├── HtmlBlockTest.cs
│ │ │ │ ├── HtmlDocumentTest.cs
│ │ │ │ ├── HtmlErrorTest.cs
│ │ │ │ ├── HtmlParserTestUtils.cs
│ │ │ │ ├── HtmlTagsTest.cs
│ │ │ │ ├── HtmlToCodeSwitchTest.cs
│ │ │ │ └── HtmlUrlAttributeTest.cs
│ │ │ ├── ParserContextTest.cs
│ │ │ ├── ParserVisitorExtensionsTest.cs
│ │ │ ├── PartialParsing/
│ │ │ │ ├── CSharpPartialParsingTest.cs
│ │ │ │ ├── PartialParsingTestBase.cs
│ │ │ │ └── VBPartialParsingTest.cs
│ │ │ ├── RazorParserTest.cs
│ │ │ ├── VB/
│ │ │ │ ├── VBAutoCompleteTest.cs
│ │ │ │ ├── VBBlockTest.cs
│ │ │ │ ├── VBContinueStatementTest.cs
│ │ │ │ ├── VBDirectiveTest.cs
│ │ │ │ ├── VBErrorTest.cs
│ │ │ │ ├── VBExitStatementTest.cs
│ │ │ │ ├── VBExplicitExpressionTest.cs
│ │ │ │ ├── VBExpressionTest.cs
│ │ │ │ ├── VBExpressionsInCodeTest.cs
│ │ │ │ ├── VBHelperTest.cs
│ │ │ │ ├── VBHtmlDocumentTest.cs
│ │ │ │ ├── VBImplicitExpressionTest.cs
│ │ │ │ ├── VBLayoutDirectiveTest.cs
│ │ │ │ ├── VBNestedStatementsTest.cs
│ │ │ │ ├── VBRazorCommentsTest.cs
│ │ │ │ ├── VBReservedWordsTest.cs
│ │ │ │ ├── VBSectionTest.cs
│ │ │ │ ├── VBSpecialKeywordsTest.cs
│ │ │ │ ├── VBStatementTest.cs
│ │ │ │ ├── VBTemplateTest.cs
│ │ │ │ └── VBToMarkupSwitchTest.cs
│ │ │ └── WhitespaceRewriterTest.cs
│ │ ├── RazorCodeLanguageTest.cs
│ │ ├── RazorDirectiveAttributeTest.cs
│ │ ├── RazorEngineHostTest.cs
│ │ ├── RazorTemplateEngineTest.cs
│ │ ├── StringTextBuffer.cs
│ │ ├── System.Web.Razor.Test.csproj
│ │ ├── TestFiles/
│ │ │ ├── CodeGenerator/
│ │ │ │ ├── CS/
│ │ │ │ │ ├── Output/
│ │ │ │ │ │ ├── Blocks.cs
│ │ │ │ │ │ ├── CodeBlock.cs
│ │ │ │ │ │ ├── CodeBlockAtEOF.cs
│ │ │ │ │ │ ├── Comments.cs
│ │ │ │ │ │ ├── ConditionalAttributes.cs
│ │ │ │ │ │ ├── DesignTime.Tabs.cs
│ │ │ │ │ │ ├── DesignTime.cs
│ │ │ │ │ │ ├── EmptyCodeBlock.cs
│ │ │ │ │ │ ├── EmptyExplicitExpression.cs
│ │ │ │ │ │ ├── EmptyImplicitExpression.cs
│ │ │ │ │ │ ├── EmptyImplicitExpressionInCode.Tabs.cs
│ │ │ │ │ │ ├── EmptyImplicitExpressionInCode.cs
│ │ │ │ │ │ ├── ExplicitExpression.cs
│ │ │ │ │ │ ├── ExplicitExpressionAtEOF.cs
│ │ │ │ │ │ ├── ExpressionsInCode.cs
│ │ │ │ │ │ ├── FunctionsBlock.DesignTime.Tabs.cs
│ │ │ │ │ │ ├── FunctionsBlock.DesignTime.cs
│ │ │ │ │ │ ├── FunctionsBlock.cs
│ │ │ │ │ │ ├── FunctionsBlockMinimal.DesignTime.Tabs.cs
│ │ │ │ │ │ ├── FunctionsBlock_Tabs.cs
│ │ │ │ │ │ ├── Helpers.Instance.cs
│ │ │ │ │ │ ├── Helpers.cs
│ │ │ │ │ │ ├── HelpersMissingCloseParen.cs
│ │ │ │ │ │ ├── HelpersMissingName.cs
│ │ │ │ │ │ ├── HelpersMissingOpenBrace.cs
│ │ │ │ │ │ ├── HelpersMissingOpenParen.cs
│ │ │ │ │ │ ├── HiddenSpansInCode.cs
│ │ │ │ │ │ ├── HtmlCommentWithQuote_Double.cs
│ │ │ │ │ │ ├── HtmlCommentWithQuote_Single.cs
│ │ │ │ │ │ ├── ImplicitExpression.cs
│ │ │ │ │ │ ├── ImplicitExpressionAtEOF.cs
│ │ │ │ │ │ ├── Imports.DesignTime.cs
│ │ │ │ │ │ ├── Imports.cs
│ │ │ │ │ │ ├── Inherits.Designtime.cs
│ │ │ │ │ │ ├── Inherits.Runtime.cs
│ │ │ │ │ │ ├── InlineBlocks.cs
│ │ │ │ │ │ ├── Instrumented.cs
│ │ │ │ │ │ ├── LayoutDirective.cs
│ │ │ │ │ │ ├── MarkupInCodeBlock.cs
│ │ │ │ │ │ ├── NestedCodeBlocks.cs
│ │ │ │ │ │ ├── NestedHelpers.cs
│ │ │ │ │ │ ├── NoLinePragmas.cs
│ │ │ │ │ │ ├── OpenedIf.DesignTime.Tabs.cs
│ │ │ │ │ │ ├── OpenedIf.DesignTime.cs
│ │ │ │ │ │ ├── ParserError.cs
│ │ │ │ │ │ ├── RazorComments.DesignTime.cs
│ │ │ │ │ │ ├── RazorComments.cs
│ │ │ │ │ │ ├── ResolveUrl.cs
│ │ │ │ │ │ ├── Sections.cs
│ │ │ │ │ │ ├── SimpleUnspacedIf.DesignTime.Tabs.cs
│ │ │ │ │ │ ├── Templates.cs
│ │ │ │ │ │ ├── UnfinishedExpressionInCode.Tabs.cs
│ │ │ │ │ │ └── UnfinishedExpressionInCode.cs
│ │ │ │ │ └── Source/
│ │ │ │ │ ├── Blocks.cshtml
│ │ │ │ │ ├── CodeBlock.cshtml
│ │ │ │ │ ├── CodeBlockAtEOF.cshtml
│ │ │ │ │ ├── ConditionalAttributes.cshtml
│ │ │ │ │ ├── DesignTime.cshtml
│ │ │ │ │ ├── EmptyCodeBlock.cshtml
│ │ │ │ │ ├── EmptyExplicitExpression.cshtml
│ │ │ │ │ ├── EmptyImplicitExpression.cshtml
│ │ │ │ │ ├── EmptyImplicitExpressionInCode.cshtml
│ │ │ │ │ ├── ExplicitExpression.cshtml
│ │ │ │ │ ├── ExplicitExpressionAtEOF.cshtml
│ │ │ │ │ ├── ExpressionsInCode.cshtml
│ │ │ │ │ ├── FunctionsBlock.cshtml
│ │ │ │ │ ├── FunctionsBlockMinimal.cshtml
│ │ │ │ │ ├── FunctionsBlock_Tabs.cshtml
│ │ │ │ │ ├── Helpers.cshtml
│ │ │ │ │ ├── HelpersMissingCloseParen.cshtml
│ │ │ │ │ ├── HelpersMissingName.cshtml
│ │ │ │ │ ├── HelpersMissingOpenBrace.cshtml
│ │ │ │ │ ├── HelpersMissingOpenParen.cshtml
│ │ │ │ │ ├── HiddenSpansInCode.cshtml
│ │ │ │ │ ├── HtmlCommentWithQuote_Double.cshtml
│ │ │ │ │ ├── HtmlCommentWithQuote_Single.cshtml
│ │ │ │ │ ├── ImplicitExpression.cshtml
│ │ │ │ │ ├── ImplicitExpressionAtEOF.cshtml
│ │ │ │ │ ├── Imports.cshtml
│ │ │ │ │ ├── Inherits.cshtml
│ │ │ │ │ ├── InlineBlocks.cshtml
│ │ │ │ │ ├── Instrumented.cshtml
│ │ │ │ │ ├── LayoutDirective.cshtml
│ │ │ │ │ ├── MarkupInCodeBlock.cshtml
│ │ │ │ │ ├── NestedCodeBlocks.cshtml
│ │ │ │ │ ├── NestedHelpers.cshtml
│ │ │ │ │ ├── NoLinePragmas.cshtml
│ │ │ │ │ ├── OpenedIf.cshtml
│ │ │ │ │ ├── ParserError.cshtml
│ │ │ │ │ ├── RazorComments.cshtml
│ │ │ │ │ ├── ResolveUrl.cshtml
│ │ │ │ │ ├── Sections.cshtml
│ │ │ │ │ ├── SimpleUnspacedIf.cshtml
│ │ │ │ │ ├── Templates.cshtml
│ │ │ │ │ └── UnfinishedExpressionInCode.cshtml
│ │ │ │ └── VB/
│ │ │ │ ├── Output/
│ │ │ │ │ ├── Blocks.vb
│ │ │ │ │ ├── CodeBlock.vb
│ │ │ │ │ ├── CodeBlockAtEOF.vb
│ │ │ │ │ ├── Comments.vb
│ │ │ │ │ ├── ConditionalAttributes.vb
│ │ │ │ │ ├── DesignTime.vb
│ │ │ │ │ ├── EmptyExplicitExpression.vb
│ │ │ │ │ ├── EmptyImplicitExpression.vb
│ │ │ │ │ ├── EmptyImplicitExpressionInCode.vb
│ │ │ │ │ ├── EmptySection.vb
│ │ │ │ │ ├── ExplicitExpression.vb
│ │ │ │ │ ├── ExplicitExpressionAtEOF.vb
│ │ │ │ │ ├── ExpressionsInCode.vb
│ │ │ │ │ ├── FunctionsBlock.DesignTime.Tabs.vb
│ │ │ │ │ ├── FunctionsBlock.DesignTime.vb
│ │ │ │ │ ├── FunctionsBlock.vb
│ │ │ │ │ ├── Helpers.Instance.vb
│ │ │ │ │ ├── Helpers.vb
│ │ │ │ │ ├── HelpersMissingCloseParen.vb
│ │ │ │ │ ├── HelpersMissingName.vb
│ │ │ │ │ ├── HelpersMissingOpenParen.vb
│ │ │ │ │ ├── ImplicitExpression.vb
│ │ │ │ │ ├── ImplicitExpressionAtEOF.vb
│ │ │ │ │ ├── Imports.DesignTime.vb
│ │ │ │ │ ├── Imports.vb
│ │ │ │ │ ├── Inherits.Designtime.vb
│ │ │ │ │ ├── Inherits.Runtime.vb
│ │ │ │ │ ├── Instrumented.vb
│ │ │ │ │ ├── LayoutDirective.vb
│ │ │ │ │ ├── MarkupInCodeBlock.vb
│ │ │ │ │ ├── NestedCodeBlocks.vb
│ │ │ │ │ ├── NestedHelpers.vb
│ │ │ │ │ ├── NoLinePragmas.vb
│ │ │ │ │ ├── Options.vb
│ │ │ │ │ ├── ParserError.vb
│ │ │ │ │ ├── RazorComments.DesignTime.vb
│ │ │ │ │ ├── RazorComments.vb
│ │ │ │ │ ├── ResolveUrl.vb
│ │ │ │ │ ├── Sections.vb
│ │ │ │ │ ├── Templates.vb
│ │ │ │ │ └── UnfinishedExpressionInCode.vb
│ │ │ │ └── Source/
│ │ │ │ ├── Blocks.vbhtml
│ │ │ │ ├── CodeBlock.vbhtml
│ │ │ │ ├── CodeBlockAtEOF.vbhtml
│ │ │ │ ├── ConditionalAttributes.vbhtml
│ │ │ │ ├── DesignTime.vbhtml
│ │ │ │ ├── EmptyExplicitExpression.vbhtml
│ │ │ │ ├── EmptyImplicitExpression.vbhtml
│ │ │ │ ├── EmptyImplicitExpressionInCode.vbhtml
│ │ │ │ ├── EmptySection.vbhtml
│ │ │ │ ├── ExplicitExpression.vbhtml
│ │ │ │ ├── ExplicitExpressionAtEOF.vbhtml
│ │ │ │ ├── ExpressionsInCode.vbhtml
│ │ │ │ ├── FunctionsBlock.vbhtml
│ │ │ │ ├── Helpers.vbhtml
│ │ │ │ ├── HelpersMissingCloseParen.vbhtml
│ │ │ │ ├── HelpersMissingName.vbhtml
│ │ │ │ ├── HelpersMissingOpenParen.vbhtml
│ │ │ │ ├── ImplicitExpression.vbhtml
│ │ │ │ ├── ImplicitExpressionAtEOF.vbhtml
│ │ │ │ ├── Imports.vbhtml
│ │ │ │ ├── Inherits.vbhtml
│ │ │ │ ├── Instrumented.vbhtml
│ │ │ │ ├── LayoutDirective.vbhtml
│ │ │ │ ├── MarkupInCodeBlock.vbhtml
│ │ │ │ ├── NestedCodeBlocks.vbhtml
│ │ │ │ ├── NestedHelpers.vbhtml
│ │ │ │ ├── NoLinePragmas.vbhtml
│ │ │ │ ├── Options.vbhtml
│ │ │ │ ├── ParserError.vbhtml
│ │ │ │ ├── RazorComments.vbhtml
│ │ │ │ ├── ResolveUrl.vbhtml
│ │ │ │ ├── Sections.vbhtml
│ │ │ │ ├── Templates.vbhtml
│ │ │ │ └── UnfinishedExpressionInCode.vbhtml
│ │ │ ├── DesignTime/
│ │ │ │ ├── Simple.cshtml
│ │ │ │ └── Simple.txt
│ │ │ └── nested-1000.html
│ │ ├── Text/
│ │ │ ├── BufferingTextReaderTest.cs
│ │ │ ├── LineTrackingStringBufferTest.cs
│ │ │ ├── LookaheadTextReaderTestBase.cs
│ │ │ ├── SourceLocationTest.cs
│ │ │ ├── SourceLocationTrackerTest.cs
│ │ │ ├── TextBufferReaderTest.cs
│ │ │ ├── TextChangeTest.cs
│ │ │ └── TextReaderExtensionsTest.cs
│ │ ├── Tokenizer/
│ │ │ ├── CSharpTokenizerCommentTest.cs
│ │ │ ├── CSharpTokenizerIdentifierTest.cs
│ │ │ ├── CSharpTokenizerLiteralTest.cs
│ │ │ ├── CSharpTokenizerOperatorsTest.cs
│ │ │ ├── CSharpTokenizerTest.cs
│ │ │ ├── CSharpTokenizerTestBase.cs
│ │ │ ├── HtmlTokenizerTest.cs
│ │ │ ├── HtmlTokenizerTestBase.cs
│ │ │ ├── TokenizerLookaheadTest.cs
│ │ │ ├── TokenizerTestBase.cs
│ │ │ ├── VBTokenizerCommentTest.cs
│ │ │ ├── VBTokenizerIdentifierTest.cs
│ │ │ ├── VBTokenizerLiteralTest.cs
│ │ │ ├── VBTokenizerOperatorsTest.cs
│ │ │ ├── VBTokenizerTest.cs
│ │ │ └── VBTokenizerTestBase.cs
│ │ ├── Utils/
│ │ │ ├── DisposableActionTest.cs
│ │ │ ├── EnumerableUtils.cs
│ │ │ ├── MiscAssert.cs
│ │ │ ├── MiscUtils.cs
│ │ │ └── SpanAssert.cs
│ │ ├── VBRazorCodeLanguageTest.cs
│ │ └── packages.config
│ ├── System.Web.WebPages.Administration.Test/
│ │ ├── AdminPackageTest.cs
│ │ ├── PackageManagerModuleTest.cs
│ │ ├── PackagesSourceFileTest.cs
│ │ ├── PageUtilsTest.cs
│ │ ├── PreApplicationStartCodeTest.cs
│ │ ├── RemoteAssemblyTest.cs
│ │ ├── System.Web.WebPages.Administration.Test.csproj
│ │ ├── WebProjectManagerTest.cs
│ │ ├── WebProjectSystemTest.cs
│ │ └── packages.config
│ ├── System.Web.WebPages.Deployment.Test/
│ │ ├── App.Config
│ │ ├── AssemblyUtilsTest.cs
│ │ ├── DeploymentUtil.cs
│ │ ├── LatestRazorVersion.cs
│ │ ├── PreApplicationStartCodeTest.cs
│ │ ├── System.Web.WebPages.Deployment.Test.csproj
│ │ ├── TestFileSystem.cs
│ │ ├── TestFiles/
│ │ │ └── ConfigTestSites/
│ │ │ ├── CshtmlFileConfigV1/
│ │ │ │ ├── Default.cshtml
│ │ │ │ └── web.config
│ │ │ ├── CshtmlFileNoVersion/
│ │ │ │ └── Default.cshtml
│ │ │ ├── NoCshtml/
│ │ │ │ └── Default.htm
│ │ │ ├── NoCshtmlConfigv1/
│ │ │ │ ├── Default.htm
│ │ │ │ └── web.config
│ │ │ ├── NoCshtmlNoConfigSetting/
│ │ │ │ ├── Default.htm
│ │ │ │ └── web.config
│ │ │ ├── NoCshtmlWithEnabledSetting/
│ │ │ │ ├── Default.htm
│ │ │ │ └── web.config
│ │ │ └── NoCshtmlWithEnabledSettingFalse/
│ │ │ ├── Default.htm
│ │ │ └── web.config
│ │ ├── WebPagesDeploymentTest.cs
│ │ └── packages.config
│ ├── System.Web.WebPages.Razor.Test/
│ │ ├── PreApplicationStartCodeTest.cs
│ │ ├── RazorBuildProviderTest.cs
│ │ ├── System.Web.WebPages.Razor.Test.csproj
│ │ ├── WebCodeRazorEngineHostTest.cs
│ │ ├── WebPageRazorEngineHostTest.cs
│ │ ├── WebRazorHostFactoryTest.cs
│ │ ├── app.config
│ │ └── packages.config
│ ├── System.Web.WebPages.Test/
│ │ ├── App.config
│ │ ├── ApplicationParts/
│ │ │ ├── ApplicationPartRegistryTest.cs
│ │ │ ├── ApplicationPartTest.cs
│ │ │ ├── MimeMappingTest.cs
│ │ │ ├── ResourceHandlerTest.cs
│ │ │ └── TestResourceAssembly.cs
│ │ ├── Extensions/
│ │ │ ├── HttpContextExtensionsTest.cs
│ │ │ ├── HttpRequestExtensionsTest.cs
│ │ │ ├── HttpResponseExtensionsTest.cs
│ │ │ ├── StringExtensionsTest.cs
│ │ │ └── StringWriterExtensionsTest.cs
│ │ ├── Helpers/
│ │ │ ├── AntiForgeryConfigTest.cs
│ │ │ ├── AntiForgeryTest.cs
│ │ │ ├── AntiXsrf/
│ │ │ │ ├── AntiForgeryTokenSerializerTest.cs
│ │ │ │ ├── AntiForgeryTokenStoreTest.cs
│ │ │ │ ├── AntiForgeryTokenTest.cs
│ │ │ │ ├── AntiForgeryWorkerTest.cs
│ │ │ │ ├── BinaryBlobTest.cs
│ │ │ │ ├── ClaimUidExtractorTest.cs
│ │ │ │ ├── HexUtil.cs
│ │ │ │ ├── MachineKey45CryptoSystemTest.cs
│ │ │ │ ├── MockAntiForgeryConfig.cs
│ │ │ │ ├── MockableAntiForgeryTokenSerializer.cs
│ │ │ │ ├── MockableClaimUidExtractor.cs
│ │ │ │ ├── MockableCryptoSystem.cs
│ │ │ │ ├── MockableTokenStore.cs
│ │ │ │ ├── MockableTokenValidator.cs
│ │ │ │ └── TokenValidatorTest.cs
│ │ │ ├── Claims/
│ │ │ │ ├── ClaimTest.cs
│ │ │ │ ├── ClaimsIdentityConverterTest.cs
│ │ │ │ ├── ClaimsIdentityTest.cs
│ │ │ │ └── MockClaimsIdentity.cs
│ │ │ ├── CryptoUtilTest.cs
│ │ │ └── UnvalidatedRequestValuesTest.cs
│ │ ├── Html/
│ │ │ ├── CheckBoxTest.cs
│ │ │ ├── HtmlHelperFactory.cs
│ │ │ ├── HtmlHelperTest.cs
│ │ │ ├── InputHelperTest.cs
│ │ │ ├── LabelHelperTest.cs
│ │ │ ├── RadioButtonTest.cs
│ │ │ ├── SelectHelperTest.cs
│ │ │ ├── TextAreaHelperTest.cs
│ │ │ └── ValidationHelperTest.cs
│ │ ├── Instrumentation/
│ │ │ └── InstrumentationServiceTest.cs
│ │ ├── LatestRazorVersion.cs
│ │ ├── Mvc/
│ │ │ ├── HttpAntiForgeryExceptionTest.cs
│ │ │ ├── ModelClientValidationMaxLengthRuleTest.cs
│ │ │ ├── ModelClientValidationMembershipPasswordRuleTest.cs
│ │ │ ├── ModelClientValidationMinLengthRuleTest.cs
│ │ │ ├── ModelClientValidationStringLengthRuleTest.cs
│ │ │ ├── TagBuilderTest.cs
│ │ │ └── UnobtrusiveValidationAttributesGeneratorTest.cs
│ │ ├── PreApplicationStartCodeTest.cs
│ │ ├── ScopeStorage/
│ │ │ ├── AspNetRequestScopeStorageProviderTest.cs
│ │ │ ├── ScopeStorageDictionaryTest.cs
│ │ │ ├── ScopeStorageKeyComparerTest.cs
│ │ │ └── WebConfigScopeStorageTest.cs
│ │ ├── System.Web.WebPages.Test.csproj
│ │ ├── TestFiles/
│ │ │ └── Deployed/
│ │ │ ├── Bar
│ │ │ ├── Bar.cshtml
│ │ │ └── Bar.foohtml
│ │ ├── Utils/
│ │ │ ├── CultureUtilTest.cs
│ │ │ ├── HtmlAttributePropertyHelperTest.cs
│ │ │ ├── PathUtilTest.cs
│ │ │ ├── PropertyHelperTest.cs
│ │ │ ├── SessionStateUtilTest.cs
│ │ │ ├── TestObjectFactory.cs
│ │ │ ├── TypeHelperTest.cs
│ │ │ ├── UrlRewriterHelperTest.cs
│ │ │ └── UrlUtilTest.cs
│ │ ├── Validation/
│ │ │ ├── ValidationHelperTest.cs
│ │ │ └── ValidatorTest.cs
│ │ ├── WebPage/
│ │ │ ├── ApplicationStartPageTest.cs
│ │ │ ├── BrowserHelpersTest.cs
│ │ │ ├── BrowserOverrideStoresTest.cs
│ │ │ ├── BuildManagerExceptionUtilTest.cs
│ │ │ ├── BuildManagerWrapperTest.cs
│ │ │ ├── CookieBrowserOverrideStoreTest.cs
│ │ │ ├── DefaultDisplayModeTest.cs
│ │ │ ├── DisplayInfoTest.cs
│ │ │ ├── DisplayModeProviderTest.cs
│ │ │ ├── DynamicHttpApplicationStateTest.cs
│ │ │ ├── DynamicPageDataDictionaryTest.cs
│ │ │ ├── FileExistenceCacheTest.cs
│ │ │ ├── LayoutTest.cs
│ │ │ ├── PageDataDictionaryTest.cs
│ │ │ ├── RenderPageTest.cs
│ │ │ ├── RequestBrowserOverrideStoreTest.cs
│ │ │ ├── RequestResourceTrackerTest.cs
│ │ │ ├── StartPageTest.cs
│ │ │ ├── TemplateStackTest.cs
│ │ │ ├── UrlDataTest.cs
│ │ │ ├── Utils.cs
│ │ │ ├── VirtualPathFactoryExtensionsTest.cs
│ │ │ ├── VirtualPathFactoryManagerTest.cs
│ │ │ ├── WebPageContextTest.cs
│ │ │ ├── WebPageExecutingBaseTest.cs
│ │ │ ├── WebPageHttpHandlerTest.cs
│ │ │ ├── WebPageHttpModuleTest.cs
│ │ │ ├── WebPageRenderingBaseTest.cs
│ │ │ ├── WebPageRouteTest.cs
│ │ │ └── WebPageTest.cs
│ │ └── packages.config
│ ├── WebApiHelpPage.Test/
│ │ ├── Controllers/
│ │ │ ├── UsersController.cs
│ │ │ └── ValuesController.cs
│ │ ├── HelpControllerTest.cs
│ │ ├── HelpPageApiModelTest.cs
│ │ ├── HelpPageAreaRegistrationTest.cs
│ │ ├── HelpPageConfigurationExtensionsTest.cs
│ │ ├── HelpPageSampleKeyTest.cs
│ │ ├── Helpers/
│ │ │ ├── ApiDescriptionHelpers.cs
│ │ │ └── CustomTypes.cs
│ │ ├── HelppageSampleGeneratorTest.cs
│ │ ├── ImageSampleTest.cs
│ │ ├── InvalidSampleTest.cs
│ │ ├── ModelDescriptionGeneratorTest.cs
│ │ ├── ObjectGeneratorTest.cs
│ │ ├── TextSampleTest.cs
│ │ ├── WebApiHelpPage.Test.csproj
│ │ ├── WebConfigTest.cs
│ │ ├── XmlDocumentationProviderTest.cs
│ │ └── packages.config
│ ├── WebApiHelpPage.VB.Test/
│ │ └── WebApiHelpPage.VB.Test.csproj
│ ├── WebMatrix.Data.Test/
│ │ ├── App.config
│ │ ├── ConfigurationManagerWrapperTest.cs
│ │ ├── DatabaseTest.cs
│ │ ├── DynamicRecordTest.cs
│ │ ├── FileHandlerTest.cs
│ │ ├── Mocks/
│ │ │ ├── MockConfigurationManager.cs
│ │ │ ├── MockConnectionConfiguration.cs
│ │ │ ├── MockDbFileHandler.cs
│ │ │ └── MockDbProviderFactory.cs
│ │ ├── WebMatrix.Data.Test.csproj
│ │ └── packages.config
│ └── WebMatrix.WebData.Test/
│ ├── MockDatabase.cs
│ ├── PreApplicationStartCodeTest.cs
│ ├── SimpleMembershipProviderTest.cs
│ ├── SimpleRoleProviderTest.cs
│ ├── WebMatrix.WebData.Test.csproj
│ ├── WebSecurityTest.cs
│ └── packages.config
└── tools/
├── 35MSSharedLib1024.snk
├── SkipStrongNames.xml
├── WebStack.StyleCop.targets
├── WebStack.settings.targets
├── WebStack.targets
├── WebStack.tasks.targets
├── WebStack.testing.targets
├── src/
│ └── Microsoft.Web.FxCop/
│ ├── DoNotCallProblematicMethodsOnTaskRule.cs
│ ├── DoNotConstructTaskInstancesRule.cs
│ ├── DoNotUseFinalizersRule.cs
│ ├── DoNotUseProblematicTaskTypesRule.cs
│ ├── IntrospectionRule.cs
│ ├── Microsoft.Web.FxCop.csproj
│ ├── Properties/
│ │ └── AssemblyInfo.cs
│ ├── Rules.xml
│ ├── TypeNodeExtensions.cs
│ └── UnusedResourceUsageRule.cs
└── vslicense/
├── dotnet-library-license.htm
└── dotnet-library-license.md
================================================
FILE CONTENTS
================================================
================================================
FILE: .appveyor.yml
================================================
init:
- git config --global core.autocrlf true
branches:
only:
- main
- /^(.*\/)?ci-.*$/
- /^rel\/.*/
configuration:
- CodeAnalysis
- Release
matrix:
fast_finish: true
before_build:
- cmd: .\build.cmd EnableSkipStrongNames
build_script:
- cmd: .\build.cmd UnitTest /P:Configuration=%Configuration%
clone_depth: 1
test: off
deploy: off
os: Visual Studio 2017
================================================
FILE: .azuredevops/dependabot.yml
================================================
version: 2
enable-campaigned-updates: false
enable-security-updates: false
================================================
FILE: .config/CredScanSuppressions.json
================================================
{
"tool": "Credential Scanner",
"suppressions": [
{
"placeholder": "abcdefg",
"_justification": "This is a fake password used in test code."
},
{
"placeholder": "Pa$$AAECAw==",
"_justification": "This is a fake password used in test code."
},
{
"placeholder": "ALyuoraY/cIWD1hjo+K81/pf83qo6Q6T+UBYcXN9P3A9WHLvEY10f+lwW5qPG6h9xw==",
"_justification": "This is a fake hashed password used in test code."
},
{
"placeholder": "abcdefg123",
"_justification": "This is a fake password used in test code."
},
{
"placeholder": "3e29b24f825e737d97aed5eb62df5076",
"_justification": "This is a fake password used in test code."
},
{
"placeholder": "My Password",
"_justification": "This is a fake password used in test code."
}
]
}
================================================
FILE: .config/tsaoptions.json
================================================
{
"areaPath": "DevDiv\\ASP.NET Core\\Policy Violations",
"codebaseName": "AspNetWebStack",
"instanceUrl": "https://devdiv.visualstudio.com/",
"iterationPath": "DevDiv",
"notificationAliases": [
"aspnetcore-build@microsoft.com"
],
"projectName": "DEVDIV",
"repositoryName": "AspNetWebStack",
"template": "TFSDEVDIV"
}
================================================
FILE: .gitattributes
================================================
* text
*.bmp binary
*.dll binary
*.gif binary
*.jpg binary
*.png binary
*.snk binary
*.ascx text
*.cd text
*.cmd text
*.coffee text
*.config text
*.cs text diff=csharp
*.csproj text merge=union
*.cshtml text
*.css text
*.dtd text
*.edmx text
*.htm text
*.html text
*.js text
*.json text
*.msbuild text
*.nuspec text
*.resx text
*.ruleset text
*.StyleCop text
*.targets text
*.tt text
*.txt text
*.vb text
*.vbhtml text
*.vbproj text merge=union
*.vbs text
*.wsf text
*.xml text
*.xunit text
*.sln text eol=crlf merge=union
================================================
FILE: .gitignore
================================================
.msbuild/
.vs/
bin/
obj/
packages/
*.[Cc]ache
*.binlog
*.dll
*.dot[Cc]over
*.exe
*.nupkg
*.orig
*.psess
*.sln.ide
*.suo
*.user
*.vsp
*[Rr]esharper*
*launchSettings.json
================================================
FILE: .nuget/packages.config
================================================
================================================
FILE: .travis.yml
================================================
language: csharp
sudo: false
dist: trusty
mono: none
os:
- linux
branches:
only:
- not.a.branch
script:
- echo Skipping builds for now.
================================================
FILE: CODE-OF-CONDUCT.md
================================================
# Code of Conduct
This project has adopted the code of conduct defined by the Contributor Covenant
to clarify expected behavior in our community.
For more information, see the [.NET Foundation Code of Conduct](https://dotnetfoundation.org/code-of-conduct).
================================================
FILE: CONTRIBUTING.md
================================================
# How to contribute
One of the easiest ways to contribute is to participate in discussions and discuss issues. You can also contribute by submitting pull requests with code changes.
## Bugs and feature requests?
For non-security related bugs please log a new issue in this repo.
## Reporting security issues and bugs
Security issues and bugs should be reported privately, via email, to the Microsoft Security Response Center (MSRC) secure@microsoft.com. You should receive a response within 24 hours. If for some reason you do not, please follow up via email to ensure we received your original message. Further information, including the MSRC PGP key, can be found in the [Security TechCenter](https://technet.microsoft.com/en-us/security/ff852094.aspx).
## Other discussions
Our team members also monitor several other discussion forums:
* [ASP.NET MVC forum](https://forums.asp.net/1146.aspx/1?MVC)
* [ASP.NET Web API forum](https://forums.asp.net/1246.aspx/1?Web+API)
* [ASP.NET Web Pages forum](https://forums.asp.net/1224.aspx/1?ASP+NET+Web+Pages)
* [StackOverflow](https://stackoverflow.com/) with the [`asp.net`](https://stackoverflow.com/questions/tagged/asp.net), [`asp.net-mvc`](https://stackoverflow.com/questions/tagged/asp.net-mvc), [`asp.net-web-api`](https://stackoverflow.com/questions/tagged/asp.net-web-api), [`asp.net-webpages`](https://stackoverflow.com/questions/tagged/asp.net-webpages) or [`razor`](https://stackoverflow.com/questions/tagged/razor) tags.
## Filing issues
When filing issues, please use our [bug filing templates](https://github.com/aspnet/Home/wiki/Functional-bug-template).
The best way to get your bug fixed is to be as detailed as you can be about the problem.
Providing a minimal project with steps to reproduce the problem is ideal.
Here are questions you can answer before you file a bug to make sure you're not missing any important information.
1. Did you read the [documentation](http://www.asp.net/aspnet)?
2. Did you include the snippet of broken code in the issue?
3. What are the *EXACT* steps to reproduce this problem?
4. What package versions are you using (you can see these in the `packages.config` file)?
5. What operating system are you using?
6. What version of IIS are you using?
GitHub supports [markdown](https://help.github.com/articles/github-flavored-markdown/), so when filing bugs make sure you check the formatting before clicking submit.
## Contributing code and content
You will need to sign a [Contributor License Agreement](https://cla2.dotnetfoundation.org/) before submitting your pull request. To complete the Contributor License Agreement (CLA), you will need to submit a request via the form and then electronically sign the Contributor License Agreement when you receive the email containing the link to the document. This needs to only be done once for any .NET Foundation OSS project.
Make sure you can build the code. Familiarize yourself with the project workflow and our coding conventions. If you don't know what a pull request is read this article: https://help.github.com/articles/using-pull-requests.
Before submitting a feature or substantial code contribution please discuss it with the team and ensure it follows the product roadmap. You might also read these two blogs posts on contributing code: [Open Source Contribution Etiquette](http://tirania.org/blog/archive/2010/Dec-31.html) by Miguel de Icaza and [Don't "Push" Your Pull Requests](https://www.igvita.com/2011/12/19/dont-push-your-pull-requests/) by Ilya Grigorik. Note that all code submissions will be rigorously reviewed and tested by the ASP.NET and Entity Framework teams, and only those that meet an extremely high bar for both quality and design/roadmap appropriateness will be merged into the source.
Here's a few things you should always do when making changes to the code base:
**Commit/Pull Request Format**
```
Summary of the changes (Less than 80 chars)
- Detail 1
- Detail 2
Addresses #bugnumber (in this specific format)
```
**Tests**
- Tests need to be provided for every bug/feature that is completed.
- Tests only need to be present for issues that need to be verified by QA (e.g. not tasks)
- If there is a scenario that is far too hard to test there does not need to be a test for it.
- "Too hard" is determined by the team as a whole.
================================================
FILE: Directory.Build.props
================================================
16.0
true
false
================================================
FILE: Directory.Build.targets
================================================
================================================
FILE: LICENSE.txt
================================================
Copyright (c) .NET Foundation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
these files except in compliance with the License. You may obtain a copy of the
License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed
under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
CONDITIONS OF ANY KIND, either express or implied. See the License for the
specific language governing permissions and limitations under the License.
================================================
FILE: NuGet.Config
================================================
================================================
FILE: README.md
================================================
# ASP.NET MVC, Web API, Web Pages, and Razor
## Note: This repo is for ASP.NET MVC 5.x, Web API 2.x, and Web Pages 3.x. For ASP.NET Core MVC, check the [AspNetCore repo](https://github.com/aspnet/AspNetCore).
ASP.NET MVC is a web framework that gives you a powerful, patterns-based way to build dynamic websites and Web APIs. ASP.NET MVC enables a clean separation of concerns and gives you full control over markup.
This repo includes:
* ASP.NET MVC 5.x
* ASP.NET Web API 2.x
* ASP.NET Web Pages 3.x
* ASP.NET Razor 3.x
### Contributing
Check out the [contributing](CONTRIBUTING.md) page to see the best places to log issues and start discussions.
### Tags and releases
Git tag or branch|Other products|MVC package versions|Web API package (product) versions|Web Pages package versions
--------|--------------|------------|------------|------------
[v2.0.4](https://github.com/aspnet/AspNetWebStack/tree/v2.0.4)||4.0.40804|4.0.30506|2.0.30506
[v2.1](https://github.com/aspnet/AspNetWebStack/tree/v2.1)|ASP.NET and Web Tools 2012.2, VS 2012 Update 2 (not on http://nuget.org)|v4 2012.2 Update RTM|v1 2012.2 Update RTM|v2 2012.2 Update RTM
[v3.0.2](https://github.com/aspnet/AspNetWebStack/tree/v3.0.2)||5.0.2|5.0.1 (2.0.1)|3.0.1
[v3.1.3](https://github.com/aspnet/AspNetWebStack/tree/v3.1.3)||5.1.3|5.1.2 (2.1.2)|3.1.2
[v3.2.6](https://github.com/aspnet/AspNetWebStack/tree/v3.2.6)||5.2.6|5.2.6|3.2.6
[v3.2.7](https://github.com/aspnet/AspNetWebStack/tree/v3.2.7)||5.2.7|5.2.7|3.2.7
[v3.2.8](https://github.com/aspnet/AspNetWebStack/tree/v3.2.8)||5.2.8|5.2.8|3.2.8
[main](https://github.com/aspnet/AspNetWebStack/tree/main)|New work e.g. MVC 5.2.9-preview1||||
================================================
FILE: Runtime.NetFramework.slnf
================================================
{
"solution": {
"path": "Runtime.sln",
"projects": [
"src\\Microsoft.AspNet.Facebook\\Microsoft.AspNet.Facebook.csproj",
"src\\Microsoft.Web.Helpers\\Microsoft.Web.Helpers.csproj",
"src\\Microsoft.Web.Mvc\\Microsoft.Web.Mvc.csproj",
"src\\Microsoft.Web.WebPages.OAuth\\Microsoft.Web.WebPages.OAuth.csproj",
"src\\System.Net.Http.Formatting\\System.Net.Http.Formatting.csproj",
"src\\System.Web.Cors\\System.Web.Cors.csproj",
"src\\System.Web.Helpers\\System.Web.Helpers.csproj",
"src\\System.Web.Http.Cors\\System.Web.Http.Cors.csproj",
"src\\System.Web.Http.Owin\\System.Web.Http.Owin.csproj",
"src\\System.Web.Http.SelfHost\\System.Web.Http.SelfHost.csproj",
"src\\System.Web.Http.SignalR\\System.Web.Http.SignalR.csproj",
"src\\System.Web.Http.Tracing\\System.Web.Http.Tracing.csproj",
"src\\System.Web.Http.WebHost\\System.Web.Http.WebHost.csproj",
"src\\System.Web.Http\\System.Web.Http.csproj",
"src\\System.Web.Mvc\\System.Web.Mvc.csproj",
"src\\System.Web.Razor\\System.Web.Razor.csproj",
"src\\System.Web.WebPages.Administration\\System.Web.WebPages.Administration.csproj",
"src\\System.Web.WebPages.Deployment\\System.Web.WebPages.Deployment.csproj",
"src\\System.Web.WebPages.Razor\\System.Web.WebPages.Razor.csproj",
"src\\System.Web.WebPages\\System.Web.WebPages.csproj",
"src\\WebApiHelpPage\\VB\\WebApiHelpPageVB.vbproj",
"src\\WebApiHelpPage\\WebApiHelpPage.csproj",
"src\\WebMatrix.Data\\WebMatrix.Data.csproj",
"src\\WebMatrix.WebData\\WebMatrix.WebData.csproj",
"test\\Microsoft.AspNet.Facebook.Test\\Microsoft.AspNet.Facebook.Test.csproj",
"test\\Microsoft.TestCommon\\Microsoft.TestCommon.csproj",
"test\\Microsoft.Web.Helpers.Test\\Microsoft.Web.Helpers.Test.csproj",
"test\\Microsoft.Web.Mvc.Test\\Microsoft.Web.Mvc.Test.csproj",
"test\\Microsoft.Web.WebPages.OAuth.Test\\Microsoft.Web.WebPages.OAuth.Test.csproj",
"test\\System.Net.Http.Formatting.Test\\System.Net.Http.Formatting.Test.csproj",
"test\\System.Web.Cors.Test\\System.Web.Cors.Test.csproj",
"test\\System.Web.Helpers.Test\\System.Web.Helpers.Test.csproj",
"test\\System.Web.Http.Cors.Test\\System.Web.Http.Cors.Test.csproj",
"test\\System.Web.Http.Integration.Test\\System.Web.Http.Integration.Test.csproj",
"test\\System.Web.Http.Owin.Test\\System.Web.Http.Owin.Test.csproj",
"test\\System.Web.Http.SelfHost.Test\\System.Web.Http.SelfHost.Test.csproj",
"test\\System.Web.Http.SignalR.Test\\System.Web.Http.SignalR.Test.csproj",
"test\\System.Web.Http.Test\\System.Web.Http.Test.csproj",
"test\\System.Web.Http.Tracing.Test\\System.Web.Http.Tracing.Test.csproj",
"test\\System.Web.Http.WebHost.Test\\System.Web.Http.WebHost.Test.csproj",
"test\\System.Web.Mvc.Test\\System.Web.Mvc.Test.csproj",
"test\\System.Web.Razor.Test\\System.Web.Razor.Test.csproj",
"test\\System.Web.WebPages.Administration.Test\\System.Web.WebPages.Administration.Test.csproj",
"test\\System.Web.WebPages.Deployment.Test\\System.Web.WebPages.Deployment.Test.csproj",
"test\\System.Web.WebPages.Razor.Test\\System.Web.WebPages.Razor.Test.csproj",
"test\\System.Web.WebPages.Test\\System.Web.WebPages.Test.csproj",
"test\\WebApiHelpPage.Test\\WebApiHelpPage.Test.csproj",
"test\\WebApiHelpPage.VB.Test\\WebApiHelpPage.VB.Test.csproj",
"test\\WebMatrix.Data.Test\\WebMatrix.Data.Test.csproj",
"test\\WebMatrix.WebData.Test\\WebMatrix.WebData.Test.csproj"
]
}
}
================================================
FILE: Runtime.NetStandard.slnf
================================================
{
"solution": {
"path": "Runtime.sln",
"projects": [
"src\\System.Net.Http.Formatting.ns1_3\\System.Net.Http.Formatting.ns1_3.csproj",
"src\\System.Net.Http.Formatting.ns2_0\\System.Net.Http.Formatting.ns2_0.csproj",
"test\\Microsoft.TestCommon\\Microsoft.TestCommon.csproj",
"test\\System.Net.Http.Formatting.ns1_3.Test\\System.Net.Http.Formatting.ns1_3.Test.csproj",
"test\\System.Net.Http.Formatting.ns2_0.Test\\System.Net.Http.Formatting.ns2_0.Test.csproj"
]
}
}
================================================
FILE: Runtime.msbuild
================================================
CodeAnalysis
Release
true
true
true
false
false
false
$(MSBuildThisFileDirectory)bin\$(Configuration)\test\TestResults\
$(MSBuildThisFileDirectory)packages\Microsoft.Web.SkipStrongNames.1.0.0\tools\SkipStrongNames.exe
$(MSBuildThisFileDirectory)tools\SkipStrongNames.xml
.nuget\NuGet.exe
<_Testing_NetStandard1_3 Include="true;false" />
$(MSBuildThisFileDirectory)tools\src\Microsoft.Web.FxCop\
$(MSBuildThisFileDirectory)packages\CustomFxCopRules
<_TestDLLsXunit Include="bin\$(Configuration)\test\*.Test.dll;
bin\$(Configuration)\test\*\net4*\*.Test.dll" />
<_XunitProject Include="tools\WebStack.testing.targets">
TestAssembly=%(_TestDLLsXunit.FullPath);
XmlPath=$(TestResultsDirectory)%(_TestDLLsXunit.FileName)-XunitResults.xml
<_VSTestDLLs Include="bin\$(Configuration)\test\ns1_3\**\*.Test.dll;
bin\$(Configuration)\test\ns2_0\**\*.Test.dll"
Exclude="bin\$(Configuration)\test\*\net4*\*.Test.dll" />
<_XunitProject Include="tools\WebStack.testing.targets">
TestAssembly=%(_VSTestDLLs.FullPath);
XmlPath=$(TestResultsDirectory)%(_VSTestDLLs.FileName)-$([System.String]::Copy('%(_VSTestDLLs.RecursiveDir)').Trim('\\'))-XunitResults.xml;
UseVSTest=true
================================================
FILE: Runtime.sln
================================================
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15
VisualStudioVersion = 15.0.27016.1
MinimumVisualStudioVersion = 15.0
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{A9836F9E-6DB3-4D9F-ADCA-CF42D8C8BA93}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{C40883CD-366D-4534-8B58-3EA0D13136DF}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Web.Razor", "src\System.Web.Razor\System.Web.Razor.csproj", "{8F18041B-9410-4C36-A9C5-067813DF5F31}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Web.WebPages.Deployment", "src\System.Web.WebPages.Deployment\System.Web.WebPages.Deployment.csproj", "{22BABB60-8F02-4027-AFFC-ACF069954536}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Web.WebPages", "src\System.Web.WebPages\System.Web.WebPages.csproj", "{76EFA9C5-8D7E-4FDF-B710-E20F8B6B00D2}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Web.Helpers", "src\System.Web.Helpers\System.Web.Helpers.csproj", "{9B7E3740-6161-4548-833C-4BBCA43B970E}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Web.WebPages.Razor", "src\System.Web.WebPages.Razor\System.Web.WebPages.Razor.csproj", "{0939B11A-FE4E-4BA1-8AD6-D97741EE314F}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebMatrix.Data", "src\WebMatrix.Data\WebMatrix.Data.csproj", "{4D39BAAF-8A96-473E-AB79-C8A341885137}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebMatrix.WebData", "src\WebMatrix.WebData\WebMatrix.WebData.csproj", "{55A15F40-1435-4248-A7F2-2A146BB83586}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.Web.Helpers", "src\Microsoft.Web.Helpers\Microsoft.Web.Helpers.csproj", "{0C7CE809-0F72-4C19-8C64-D6573E4D9521}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Web.WebPages.Administration", "src\System.Web.WebPages.Administration\System.Web.WebPages.Administration.csproj", "{C23F02FC-4538-43F5-ABBA-38BA069AEA8F}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Web.Mvc", "src\System.Web.Mvc\System.Web.Mvc.csproj", "{3D3FFD8A-624D-4E9B-954B-E1C105507975}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.Web.Mvc", "src\Microsoft.Web.Mvc\Microsoft.Web.Mvc.csproj", "{D3CF7430-6DA4-42B0-BD90-CA39D16687B2}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Web.Razor.Test", "test\System.Web.Razor.Test\System.Web.Razor.Test.csproj", "{0BB62A1D-E6B5-49FA-9E3C-6AF679A66DFE}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Web.WebPages.Deployment.Test", "test\System.Web.WebPages.Deployment.Test\System.Web.WebPages.Deployment.Test.csproj", "{268DEE9D-F323-4A00-8ED8-3784388C3E3A}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Web.WebPages.Test", "test\System.Web.WebPages.Test\System.Web.WebPages.Test.csproj", "{0F4870DB-A799-4DBA-99DF-0D74BB52FEC2}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Web.Helpers.Test", "test\System.Web.Helpers.Test\System.Web.Helpers.Test.csproj", "{D3313BDF-8071-4AC8-9D98-ABF7F9E88A57}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Web.WebPages.Razor.Test", "test\System.Web.WebPages.Razor.Test\System.Web.WebPages.Razor.Test.csproj", "{66A74F3C-A106-4C1E-BAA0-001908FEA2CA}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebMatrix.Data.Test", "test\WebMatrix.Data.Test\WebMatrix.Data.Test.csproj", "{E2D008A9-4D1D-4F6B-8325-4ED717D6EA0A}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebMatrix.WebData.Test", "test\WebMatrix.WebData.Test\WebMatrix.WebData.Test.csproj", "{CD48EB41-92A5-4628-A0F7-6A43DF58827E}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.Web.Helpers.Test", "test\Microsoft.Web.Helpers.Test\Microsoft.Web.Helpers.Test.csproj", "{2C653A66-8159-4A41-954F-A67915DFDA87}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Web.WebPages.Administration.Test", "test\System.Web.WebPages.Administration.Test\System.Web.WebPages.Administration.Test.csproj", "{21C729D6-ECF8-47EF-A236-7C6A4272EAF0}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Web.Mvc.Test", "test\System.Web.Mvc.Test\System.Web.Mvc.Test.csproj", "{8AC2A2E4-2F11-4D40-A887-62E2583A65E6}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.Web.Mvc.Test", "test\Microsoft.Web.Mvc.Test\Microsoft.Web.Mvc.Test.csproj", "{6C28DA70-60F1-4442-967F-591BF3962EC5}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Web.Http", "src\System.Web.Http\System.Web.Http.csproj", "{DDC1CE0C-486E-4E35-BB3B-EAB61F8F9440}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Web.Http.Test", "test\System.Web.Http.Test\System.Web.Http.Test.csproj", "{7F2C796F-43B2-4F8F-ABFF-A154EC8AAFA1}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Net.Http.Formatting", "src\System.Net.Http.Formatting\System.Net.Http.Formatting.csproj", "{668E9021-CE84-49D9-98FB-DF125A9FCDB0}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.TestCommon", "test\Microsoft.TestCommon\Microsoft.TestCommon.csproj", "{FCCC4CB7-BAF7-4A57-9F89-E5766FE536C0}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Net.Http.Formatting.Test", "test\System.Net.Http.Formatting.Test\System.Net.Http.Formatting.Test.csproj", "{7AF77741-9158-4D5F-8782-8F21FADF025F}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Web.Http.SelfHost", "src\System.Web.Http.SelfHost\System.Web.Http.SelfHost.csproj", "{66492E69-CE4C-4FB1-9B1F-88DEE09D06F1}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Web.Http.WebHost", "src\System.Web.Http.WebHost\System.Web.Http.WebHost.csproj", "{A0187BC2-8325-4BB2-8697-7F955CF4173E}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Web.Http.Integration.Test", "test\System.Web.Http.Integration.Test\System.Web.Http.Integration.Test.csproj", "{3267DFC6-B34D-4011-BC0F-D3B56AF6F608}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Web.Http.WebHost.Test", "test\System.Web.Http.WebHost.Test\System.Web.Http.WebHost.Test.csproj", "{EA62944F-BD25-4730-9405-9BE8FF5BEACD}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.Web.WebPages.OAuth", "src\Microsoft.Web.WebPages.OAuth\Microsoft.Web.WebPages.OAuth.csproj", "{4CBFC7D3-1600-4CE5-BC6B-AC7BC2D6F853}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.Web.WebPages.OAuth.Test", "test\Microsoft.Web.WebPages.OAuth.Test\Microsoft.Web.WebPages.OAuth.Test.csproj", "{694C6EDF-EA52-438F-B745-82B025ECC0E7}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Web.Http.SelfHost.Test", "test\System.Web.Http.SelfHost.Test\System.Web.Http.SelfHost.Test.csproj", "{7F29EE87-6A63-43C6-B7FF-74DD06815830}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebApiHelpPage", "src\WebApiHelpPage\WebApiHelpPage.csproj", "{FEDFE6CA-8282-4C5B-A756-E97189690982}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebApiHelpPage.Test", "test\WebApiHelpPage.Test\WebApiHelpPage.Test.csproj", "{291EF478-BF24-4935-BC78-E0DCCD0C9A1B}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Web.Http.Tracing", "src\System.Web.Http.Tracing\System.Web.Http.Tracing.csproj", "{6E81EF98-8F5C-4EED-8B37-456991CA56FD}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Web.Http.Tracing.Test", "test\System.Web.Http.Tracing.Test\System.Web.Http.Tracing.Test.csproj", "{F87FD911-4A97-4057-8EAE-1CB96B9A1937}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Web.Http.SignalR", "src\System.Web.Http.SignalR\System.Web.Http.SignalR.csproj", "{8A607AC9-E7DD-4B74-A0B1-47FC95B9838B}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Web.Http.SignalR.Test", "test\System.Web.Http.SignalR.Test\System.Web.Http.SignalR.Test.csproj", "{E22245AF-D5E1-46F6-B443-C886983EC50C}"
EndProject
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "WebApiHelpPageVB", "src\WebApiHelpPage\VB\WebApiHelpPageVB.vbproj", "{22075D5A-E9A1-4E2D-ABA7-8E7CBF2A049E}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebApiHelpPage.VB.Test", "test\WebApiHelpPage.VB.Test\WebApiHelpPage.VB.Test.csproj", "{41D5691F-2720-44A0-9185-EEFE928D2679}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Web.Http.Owin", "src\System.Web.Http.Owin\System.Web.Http.Owin.csproj", "{66DD7CD7-C68F-4D0E-9F3D-3B58C49D1467}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Web.Http.Owin.Test", "test\System.Web.Http.Owin.Test\System.Web.Http.Owin.Test.csproj", "{C19267DD-3984-430C-AE18-4034F85DE4E5}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution items", "Solution items", "{CB34D534-9A09-4EE4-B350-C1C23AFBF5EE}"
ProjectSection(SolutionItems) = preProject
global.json = global.json
NuGet.Config = NuGet.Config
.nuget\packages.config = .nuget\packages.config
EndProjectSection
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Web.Cors", "src\System.Web.Cors\System.Web.Cors.csproj", "{43C1B979-D593-4A32-BB3A-4316F1C66D66}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Web.Http.Cors", "src\System.Web.Http.Cors\System.Web.Http.Cors.csproj", "{25DEF6F6-7F99-4EB7-91ED-5181A346AFE1}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Web.Cors.Test", "test\System.Web.Cors.Test\System.Web.Cors.Test.csproj", "{BF07E947-120D-4E93-93DA-A4BF121753EA}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Web.Http.Cors.Test", "test\System.Web.Http.Cors.Test\System.Web.Http.Cors.Test.csproj", "{1E89A3E9-0A7F-418F-B4BE-6E38A6315373}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.AspNet.Facebook", "src\Microsoft.AspNet.Facebook\Microsoft.AspNet.Facebook.csproj", "{821A136C-7C6F-44C6-A9E6-C39B5BFB1483}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.AspNet.Facebook.Test", "test\Microsoft.AspNet.Facebook.Test\Microsoft.AspNet.Facebook.Test.csproj", "{C3BEF382-C7C4-454D-B017-1EAC03E9A82C}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Net.Http.Formatting.ns1_3", "src\System.Net.Http.Formatting.ns1_3\System.Net.Http.Formatting.ns1_3.csproj", "{5ABD9968-F3A3-4967-B768-A6142F69759E}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Net.Http.Formatting.ns2_0", "src\System.Net.Http.Formatting.ns2_0\System.Net.Http.Formatting.ns2_0.csproj", "{9AAFB58C-B8C1-4D7F-80E6-7B95C94A829B}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Net.Http.Formatting.ns1_3.Test", "test\System.Net.Http.Formatting.ns1_3.Test\System.Net.Http.Formatting.ns1_3.Test.csproj", "{A1A20049-04C2-4676-93CF-92449C4BBAA9}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Net.Http.Formatting.ns2_0.Test", "test\System.Net.Http.Formatting.ns2_0.Test\System.Net.Http.Formatting.ns2_0.Test.csproj", "{6C320AD9-F380-4F8B-85F9-0689F88766EC}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
CodeAnalysis|Any CPU = CodeAnalysis|Any CPU
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{8F18041B-9410-4C36-A9C5-067813DF5F31}.CodeAnalysis|Any CPU.ActiveCfg = CodeAnalysis|Any CPU
{8F18041B-9410-4C36-A9C5-067813DF5F31}.CodeAnalysis|Any CPU.Build.0 = CodeAnalysis|Any CPU
{8F18041B-9410-4C36-A9C5-067813DF5F31}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{8F18041B-9410-4C36-A9C5-067813DF5F31}.Debug|Any CPU.Build.0 = Debug|Any CPU
{8F18041B-9410-4C36-A9C5-067813DF5F31}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8F18041B-9410-4C36-A9C5-067813DF5F31}.Release|Any CPU.Build.0 = Release|Any CPU
{22BABB60-8F02-4027-AFFC-ACF069954536}.CodeAnalysis|Any CPU.ActiveCfg = CodeAnalysis|Any CPU
{22BABB60-8F02-4027-AFFC-ACF069954536}.CodeAnalysis|Any CPU.Build.0 = CodeAnalysis|Any CPU
{22BABB60-8F02-4027-AFFC-ACF069954536}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{22BABB60-8F02-4027-AFFC-ACF069954536}.Debug|Any CPU.Build.0 = Debug|Any CPU
{22BABB60-8F02-4027-AFFC-ACF069954536}.Release|Any CPU.ActiveCfg = Release|Any CPU
{22BABB60-8F02-4027-AFFC-ACF069954536}.Release|Any CPU.Build.0 = Release|Any CPU
{76EFA9C5-8D7E-4FDF-B710-E20F8B6B00D2}.CodeAnalysis|Any CPU.ActiveCfg = CodeAnalysis|Any CPU
{76EFA9C5-8D7E-4FDF-B710-E20F8B6B00D2}.CodeAnalysis|Any CPU.Build.0 = CodeAnalysis|Any CPU
{76EFA9C5-8D7E-4FDF-B710-E20F8B6B00D2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{76EFA9C5-8D7E-4FDF-B710-E20F8B6B00D2}.Debug|Any CPU.Build.0 = Debug|Any CPU
{76EFA9C5-8D7E-4FDF-B710-E20F8B6B00D2}.Release|Any CPU.ActiveCfg = Release|Any CPU
{76EFA9C5-8D7E-4FDF-B710-E20F8B6B00D2}.Release|Any CPU.Build.0 = Release|Any CPU
{9B7E3740-6161-4548-833C-4BBCA43B970E}.CodeAnalysis|Any CPU.ActiveCfg = CodeAnalysis|Any CPU
{9B7E3740-6161-4548-833C-4BBCA43B970E}.CodeAnalysis|Any CPU.Build.0 = CodeAnalysis|Any CPU
{9B7E3740-6161-4548-833C-4BBCA43B970E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{9B7E3740-6161-4548-833C-4BBCA43B970E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{9B7E3740-6161-4548-833C-4BBCA43B970E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{9B7E3740-6161-4548-833C-4BBCA43B970E}.Release|Any CPU.Build.0 = Release|Any CPU
{0939B11A-FE4E-4BA1-8AD6-D97741EE314F}.CodeAnalysis|Any CPU.ActiveCfg = CodeAnalysis|Any CPU
{0939B11A-FE4E-4BA1-8AD6-D97741EE314F}.CodeAnalysis|Any CPU.Build.0 = CodeAnalysis|Any CPU
{0939B11A-FE4E-4BA1-8AD6-D97741EE314F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{0939B11A-FE4E-4BA1-8AD6-D97741EE314F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{0939B11A-FE4E-4BA1-8AD6-D97741EE314F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{0939B11A-FE4E-4BA1-8AD6-D97741EE314F}.Release|Any CPU.Build.0 = Release|Any CPU
{4D39BAAF-8A96-473E-AB79-C8A341885137}.CodeAnalysis|Any CPU.ActiveCfg = CodeAnalysis|Any CPU
{4D39BAAF-8A96-473E-AB79-C8A341885137}.CodeAnalysis|Any CPU.Build.0 = CodeAnalysis|Any CPU
{4D39BAAF-8A96-473E-AB79-C8A341885137}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{4D39BAAF-8A96-473E-AB79-C8A341885137}.Debug|Any CPU.Build.0 = Debug|Any CPU
{4D39BAAF-8A96-473E-AB79-C8A341885137}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4D39BAAF-8A96-473E-AB79-C8A341885137}.Release|Any CPU.Build.0 = Release|Any CPU
{55A15F40-1435-4248-A7F2-2A146BB83586}.CodeAnalysis|Any CPU.ActiveCfg = CodeAnalysis|Any CPU
{55A15F40-1435-4248-A7F2-2A146BB83586}.CodeAnalysis|Any CPU.Build.0 = CodeAnalysis|Any CPU
{55A15F40-1435-4248-A7F2-2A146BB83586}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{55A15F40-1435-4248-A7F2-2A146BB83586}.Debug|Any CPU.Build.0 = Debug|Any CPU
{55A15F40-1435-4248-A7F2-2A146BB83586}.Release|Any CPU.ActiveCfg = Release|Any CPU
{55A15F40-1435-4248-A7F2-2A146BB83586}.Release|Any CPU.Build.0 = Release|Any CPU
{0C7CE809-0F72-4C19-8C64-D6573E4D9521}.CodeAnalysis|Any CPU.ActiveCfg = CodeAnalysis|Any CPU
{0C7CE809-0F72-4C19-8C64-D6573E4D9521}.CodeAnalysis|Any CPU.Build.0 = CodeAnalysis|Any CPU
{0C7CE809-0F72-4C19-8C64-D6573E4D9521}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{0C7CE809-0F72-4C19-8C64-D6573E4D9521}.Debug|Any CPU.Build.0 = Debug|Any CPU
{0C7CE809-0F72-4C19-8C64-D6573E4D9521}.Release|Any CPU.ActiveCfg = Release|Any CPU
{0C7CE809-0F72-4C19-8C64-D6573E4D9521}.Release|Any CPU.Build.0 = Release|Any CPU
{C23F02FC-4538-43F5-ABBA-38BA069AEA8F}.CodeAnalysis|Any CPU.ActiveCfg = CodeAnalysis|Any CPU
{C23F02FC-4538-43F5-ABBA-38BA069AEA8F}.CodeAnalysis|Any CPU.Build.0 = CodeAnalysis|Any CPU
{C23F02FC-4538-43F5-ABBA-38BA069AEA8F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C23F02FC-4538-43F5-ABBA-38BA069AEA8F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C23F02FC-4538-43F5-ABBA-38BA069AEA8F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C23F02FC-4538-43F5-ABBA-38BA069AEA8F}.Release|Any CPU.Build.0 = Release|Any CPU
{3D3FFD8A-624D-4E9B-954B-E1C105507975}.CodeAnalysis|Any CPU.ActiveCfg = CodeAnalysis|Any CPU
{3D3FFD8A-624D-4E9B-954B-E1C105507975}.CodeAnalysis|Any CPU.Build.0 = CodeAnalysis|Any CPU
{3D3FFD8A-624D-4E9B-954B-E1C105507975}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{3D3FFD8A-624D-4E9B-954B-E1C105507975}.Debug|Any CPU.Build.0 = Debug|Any CPU
{3D3FFD8A-624D-4E9B-954B-E1C105507975}.Release|Any CPU.ActiveCfg = Release|Any CPU
{3D3FFD8A-624D-4E9B-954B-E1C105507975}.Release|Any CPU.Build.0 = Release|Any CPU
{D3CF7430-6DA4-42B0-BD90-CA39D16687B2}.CodeAnalysis|Any CPU.ActiveCfg = CodeAnalysis|Any CPU
{D3CF7430-6DA4-42B0-BD90-CA39D16687B2}.CodeAnalysis|Any CPU.Build.0 = CodeAnalysis|Any CPU
{D3CF7430-6DA4-42B0-BD90-CA39D16687B2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D3CF7430-6DA4-42B0-BD90-CA39D16687B2}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D3CF7430-6DA4-42B0-BD90-CA39D16687B2}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D3CF7430-6DA4-42B0-BD90-CA39D16687B2}.Release|Any CPU.Build.0 = Release|Any CPU
{0BB62A1D-E6B5-49FA-9E3C-6AF679A66DFE}.CodeAnalysis|Any CPU.ActiveCfg = CodeAnalysis|Any CPU
{0BB62A1D-E6B5-49FA-9E3C-6AF679A66DFE}.CodeAnalysis|Any CPU.Build.0 = CodeAnalysis|Any CPU
{0BB62A1D-E6B5-49FA-9E3C-6AF679A66DFE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{0BB62A1D-E6B5-49FA-9E3C-6AF679A66DFE}.Debug|Any CPU.Build.0 = Debug|Any CPU
{0BB62A1D-E6B5-49FA-9E3C-6AF679A66DFE}.Release|Any CPU.ActiveCfg = Release|Any CPU
{0BB62A1D-E6B5-49FA-9E3C-6AF679A66DFE}.Release|Any CPU.Build.0 = Release|Any CPU
{268DEE9D-F323-4A00-8ED8-3784388C3E3A}.CodeAnalysis|Any CPU.ActiveCfg = CodeAnalysis|Any CPU
{268DEE9D-F323-4A00-8ED8-3784388C3E3A}.CodeAnalysis|Any CPU.Build.0 = CodeAnalysis|Any CPU
{268DEE9D-F323-4A00-8ED8-3784388C3E3A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{268DEE9D-F323-4A00-8ED8-3784388C3E3A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{268DEE9D-F323-4A00-8ED8-3784388C3E3A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{268DEE9D-F323-4A00-8ED8-3784388C3E3A}.Release|Any CPU.Build.0 = Release|Any CPU
{0F4870DB-A799-4DBA-99DF-0D74BB52FEC2}.CodeAnalysis|Any CPU.ActiveCfg = CodeAnalysis|Any CPU
{0F4870DB-A799-4DBA-99DF-0D74BB52FEC2}.CodeAnalysis|Any CPU.Build.0 = CodeAnalysis|Any CPU
{0F4870DB-A799-4DBA-99DF-0D74BB52FEC2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{0F4870DB-A799-4DBA-99DF-0D74BB52FEC2}.Debug|Any CPU.Build.0 = Debug|Any CPU
{0F4870DB-A799-4DBA-99DF-0D74BB52FEC2}.Release|Any CPU.ActiveCfg = Release|Any CPU
{0F4870DB-A799-4DBA-99DF-0D74BB52FEC2}.Release|Any CPU.Build.0 = Release|Any CPU
{D3313BDF-8071-4AC8-9D98-ABF7F9E88A57}.CodeAnalysis|Any CPU.ActiveCfg = CodeAnalysis|Any CPU
{D3313BDF-8071-4AC8-9D98-ABF7F9E88A57}.CodeAnalysis|Any CPU.Build.0 = CodeAnalysis|Any CPU
{D3313BDF-8071-4AC8-9D98-ABF7F9E88A57}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D3313BDF-8071-4AC8-9D98-ABF7F9E88A57}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D3313BDF-8071-4AC8-9D98-ABF7F9E88A57}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D3313BDF-8071-4AC8-9D98-ABF7F9E88A57}.Release|Any CPU.Build.0 = Release|Any CPU
{66A74F3C-A106-4C1E-BAA0-001908FEA2CA}.CodeAnalysis|Any CPU.ActiveCfg = CodeAnalysis|Any CPU
{66A74F3C-A106-4C1E-BAA0-001908FEA2CA}.CodeAnalysis|Any CPU.Build.0 = CodeAnalysis|Any CPU
{66A74F3C-A106-4C1E-BAA0-001908FEA2CA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{66A74F3C-A106-4C1E-BAA0-001908FEA2CA}.Debug|Any CPU.Build.0 = Debug|Any CPU
{66A74F3C-A106-4C1E-BAA0-001908FEA2CA}.Release|Any CPU.ActiveCfg = Release|Any CPU
{66A74F3C-A106-4C1E-BAA0-001908FEA2CA}.Release|Any CPU.Build.0 = Release|Any CPU
{E2D008A9-4D1D-4F6B-8325-4ED717D6EA0A}.CodeAnalysis|Any CPU.ActiveCfg = CodeAnalysis|Any CPU
{E2D008A9-4D1D-4F6B-8325-4ED717D6EA0A}.CodeAnalysis|Any CPU.Build.0 = CodeAnalysis|Any CPU
{E2D008A9-4D1D-4F6B-8325-4ED717D6EA0A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E2D008A9-4D1D-4F6B-8325-4ED717D6EA0A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E2D008A9-4D1D-4F6B-8325-4ED717D6EA0A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E2D008A9-4D1D-4F6B-8325-4ED717D6EA0A}.Release|Any CPU.Build.0 = Release|Any CPU
{CD48EB41-92A5-4628-A0F7-6A43DF58827E}.CodeAnalysis|Any CPU.ActiveCfg = CodeAnalysis|Any CPU
{CD48EB41-92A5-4628-A0F7-6A43DF58827E}.CodeAnalysis|Any CPU.Build.0 = CodeAnalysis|Any CPU
{CD48EB41-92A5-4628-A0F7-6A43DF58827E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{CD48EB41-92A5-4628-A0F7-6A43DF58827E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{CD48EB41-92A5-4628-A0F7-6A43DF58827E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{CD48EB41-92A5-4628-A0F7-6A43DF58827E}.Release|Any CPU.Build.0 = Release|Any CPU
{2C653A66-8159-4A41-954F-A67915DFDA87}.CodeAnalysis|Any CPU.ActiveCfg = CodeAnalysis|Any CPU
{2C653A66-8159-4A41-954F-A67915DFDA87}.CodeAnalysis|Any CPU.Build.0 = CodeAnalysis|Any CPU
{2C653A66-8159-4A41-954F-A67915DFDA87}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{2C653A66-8159-4A41-954F-A67915DFDA87}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2C653A66-8159-4A41-954F-A67915DFDA87}.Release|Any CPU.ActiveCfg = Release|Any CPU
{2C653A66-8159-4A41-954F-A67915DFDA87}.Release|Any CPU.Build.0 = Release|Any CPU
{21C729D6-ECF8-47EF-A236-7C6A4272EAF0}.CodeAnalysis|Any CPU.ActiveCfg = CodeAnalysis|Any CPU
{21C729D6-ECF8-47EF-A236-7C6A4272EAF0}.CodeAnalysis|Any CPU.Build.0 = CodeAnalysis|Any CPU
{21C729D6-ECF8-47EF-A236-7C6A4272EAF0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{21C729D6-ECF8-47EF-A236-7C6A4272EAF0}.Debug|Any CPU.Build.0 = Debug|Any CPU
{21C729D6-ECF8-47EF-A236-7C6A4272EAF0}.Release|Any CPU.ActiveCfg = Release|Any CPU
{21C729D6-ECF8-47EF-A236-7C6A4272EAF0}.Release|Any CPU.Build.0 = Release|Any CPU
{8AC2A2E4-2F11-4D40-A887-62E2583A65E6}.CodeAnalysis|Any CPU.ActiveCfg = CodeAnalysis|Any CPU
{8AC2A2E4-2F11-4D40-A887-62E2583A65E6}.CodeAnalysis|Any CPU.Build.0 = CodeAnalysis|Any CPU
{8AC2A2E4-2F11-4D40-A887-62E2583A65E6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{8AC2A2E4-2F11-4D40-A887-62E2583A65E6}.Debug|Any CPU.Build.0 = Debug|Any CPU
{8AC2A2E4-2F11-4D40-A887-62E2583A65E6}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8AC2A2E4-2F11-4D40-A887-62E2583A65E6}.Release|Any CPU.Build.0 = Release|Any CPU
{6C28DA70-60F1-4442-967F-591BF3962EC5}.CodeAnalysis|Any CPU.ActiveCfg = CodeAnalysis|Any CPU
{6C28DA70-60F1-4442-967F-591BF3962EC5}.CodeAnalysis|Any CPU.Build.0 = CodeAnalysis|Any CPU
{6C28DA70-60F1-4442-967F-591BF3962EC5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{6C28DA70-60F1-4442-967F-591BF3962EC5}.Debug|Any CPU.Build.0 = Debug|Any CPU
{6C28DA70-60F1-4442-967F-591BF3962EC5}.Release|Any CPU.ActiveCfg = Release|Any CPU
{6C28DA70-60F1-4442-967F-591BF3962EC5}.Release|Any CPU.Build.0 = Release|Any CPU
{DDC1CE0C-486E-4E35-BB3B-EAB61F8F9440}.CodeAnalysis|Any CPU.ActiveCfg = CodeAnalysis|Any CPU
{DDC1CE0C-486E-4E35-BB3B-EAB61F8F9440}.CodeAnalysis|Any CPU.Build.0 = CodeAnalysis|Any CPU
{DDC1CE0C-486E-4E35-BB3B-EAB61F8F9440}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{DDC1CE0C-486E-4E35-BB3B-EAB61F8F9440}.Debug|Any CPU.Build.0 = Debug|Any CPU
{DDC1CE0C-486E-4E35-BB3B-EAB61F8F9440}.Release|Any CPU.ActiveCfg = Release|Any CPU
{DDC1CE0C-486E-4E35-BB3B-EAB61F8F9440}.Release|Any CPU.Build.0 = Release|Any CPU
{7F2C796F-43B2-4F8F-ABFF-A154EC8AAFA1}.CodeAnalysis|Any CPU.ActiveCfg = CodeAnalysis|Any CPU
{7F2C796F-43B2-4F8F-ABFF-A154EC8AAFA1}.CodeAnalysis|Any CPU.Build.0 = CodeAnalysis|Any CPU
{7F2C796F-43B2-4F8F-ABFF-A154EC8AAFA1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7F2C796F-43B2-4F8F-ABFF-A154EC8AAFA1}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7F2C796F-43B2-4F8F-ABFF-A154EC8AAFA1}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7F2C796F-43B2-4F8F-ABFF-A154EC8AAFA1}.Release|Any CPU.Build.0 = Release|Any CPU
{668E9021-CE84-49D9-98FB-DF125A9FCDB0}.CodeAnalysis|Any CPU.ActiveCfg = CodeAnalysis|Any CPU
{668E9021-CE84-49D9-98FB-DF125A9FCDB0}.CodeAnalysis|Any CPU.Build.0 = CodeAnalysis|Any CPU
{668E9021-CE84-49D9-98FB-DF125A9FCDB0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{668E9021-CE84-49D9-98FB-DF125A9FCDB0}.Debug|Any CPU.Build.0 = Debug|Any CPU
{668E9021-CE84-49D9-98FB-DF125A9FCDB0}.Release|Any CPU.ActiveCfg = Release|Any CPU
{668E9021-CE84-49D9-98FB-DF125A9FCDB0}.Release|Any CPU.Build.0 = Release|Any CPU
{FCCC4CB7-BAF7-4A57-9F89-E5766FE536C0}.CodeAnalysis|Any CPU.ActiveCfg = CodeAnalysis|Any CPU
{FCCC4CB7-BAF7-4A57-9F89-E5766FE536C0}.CodeAnalysis|Any CPU.Build.0 = CodeAnalysis|Any CPU
{FCCC4CB7-BAF7-4A57-9F89-E5766FE536C0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{FCCC4CB7-BAF7-4A57-9F89-E5766FE536C0}.Debug|Any CPU.Build.0 = Debug|Any CPU
{FCCC4CB7-BAF7-4A57-9F89-E5766FE536C0}.Release|Any CPU.ActiveCfg = Release|Any CPU
{FCCC4CB7-BAF7-4A57-9F89-E5766FE536C0}.Release|Any CPU.Build.0 = Release|Any CPU
{7AF77741-9158-4D5F-8782-8F21FADF025F}.CodeAnalysis|Any CPU.ActiveCfg = CodeAnalysis|Any CPU
{7AF77741-9158-4D5F-8782-8F21FADF025F}.CodeAnalysis|Any CPU.Build.0 = CodeAnalysis|Any CPU
{7AF77741-9158-4D5F-8782-8F21FADF025F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7AF77741-9158-4D5F-8782-8F21FADF025F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7AF77741-9158-4D5F-8782-8F21FADF025F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7AF77741-9158-4D5F-8782-8F21FADF025F}.Release|Any CPU.Build.0 = Release|Any CPU
{66492E69-CE4C-4FB1-9B1F-88DEE09D06F1}.CodeAnalysis|Any CPU.ActiveCfg = CodeAnalysis|Any CPU
{66492E69-CE4C-4FB1-9B1F-88DEE09D06F1}.CodeAnalysis|Any CPU.Build.0 = CodeAnalysis|Any CPU
{66492E69-CE4C-4FB1-9B1F-88DEE09D06F1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{66492E69-CE4C-4FB1-9B1F-88DEE09D06F1}.Debug|Any CPU.Build.0 = Debug|Any CPU
{66492E69-CE4C-4FB1-9B1F-88DEE09D06F1}.Release|Any CPU.ActiveCfg = Release|Any CPU
{66492E69-CE4C-4FB1-9B1F-88DEE09D06F1}.Release|Any CPU.Build.0 = Release|Any CPU
{A0187BC2-8325-4BB2-8697-7F955CF4173E}.CodeAnalysis|Any CPU.ActiveCfg = CodeAnalysis|Any CPU
{A0187BC2-8325-4BB2-8697-7F955CF4173E}.CodeAnalysis|Any CPU.Build.0 = CodeAnalysis|Any CPU
{A0187BC2-8325-4BB2-8697-7F955CF4173E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A0187BC2-8325-4BB2-8697-7F955CF4173E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A0187BC2-8325-4BB2-8697-7F955CF4173E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A0187BC2-8325-4BB2-8697-7F955CF4173E}.Release|Any CPU.Build.0 = Release|Any CPU
{3267DFC6-B34D-4011-BC0F-D3B56AF6F608}.CodeAnalysis|Any CPU.ActiveCfg = CodeAnalysis|Any CPU
{3267DFC6-B34D-4011-BC0F-D3B56AF6F608}.CodeAnalysis|Any CPU.Build.0 = CodeAnalysis|Any CPU
{3267DFC6-B34D-4011-BC0F-D3B56AF6F608}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{3267DFC6-B34D-4011-BC0F-D3B56AF6F608}.Debug|Any CPU.Build.0 = Debug|Any CPU
{3267DFC6-B34D-4011-BC0F-D3B56AF6F608}.Release|Any CPU.ActiveCfg = Release|Any CPU
{3267DFC6-B34D-4011-BC0F-D3B56AF6F608}.Release|Any CPU.Build.0 = Release|Any CPU
{EA62944F-BD25-4730-9405-9BE8FF5BEACD}.CodeAnalysis|Any CPU.ActiveCfg = CodeAnalysis|Any CPU
{EA62944F-BD25-4730-9405-9BE8FF5BEACD}.CodeAnalysis|Any CPU.Build.0 = CodeAnalysis|Any CPU
{EA62944F-BD25-4730-9405-9BE8FF5BEACD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{EA62944F-BD25-4730-9405-9BE8FF5BEACD}.Debug|Any CPU.Build.0 = Debug|Any CPU
{EA62944F-BD25-4730-9405-9BE8FF5BEACD}.Release|Any CPU.ActiveCfg = Release|Any CPU
{EA62944F-BD25-4730-9405-9BE8FF5BEACD}.Release|Any CPU.Build.0 = Release|Any CPU
{4CBFC7D3-1600-4CE5-BC6B-AC7BC2D6F853}.CodeAnalysis|Any CPU.ActiveCfg = CodeAnalysis|Any CPU
{4CBFC7D3-1600-4CE5-BC6B-AC7BC2D6F853}.CodeAnalysis|Any CPU.Build.0 = CodeAnalysis|Any CPU
{4CBFC7D3-1600-4CE5-BC6B-AC7BC2D6F853}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{4CBFC7D3-1600-4CE5-BC6B-AC7BC2D6F853}.Debug|Any CPU.Build.0 = Debug|Any CPU
{4CBFC7D3-1600-4CE5-BC6B-AC7BC2D6F853}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4CBFC7D3-1600-4CE5-BC6B-AC7BC2D6F853}.Release|Any CPU.Build.0 = Release|Any CPU
{694C6EDF-EA52-438F-B745-82B025ECC0E7}.CodeAnalysis|Any CPU.ActiveCfg = CodeAnalysis|Any CPU
{694C6EDF-EA52-438F-B745-82B025ECC0E7}.CodeAnalysis|Any CPU.Build.0 = CodeAnalysis|Any CPU
{694C6EDF-EA52-438F-B745-82B025ECC0E7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{694C6EDF-EA52-438F-B745-82B025ECC0E7}.Debug|Any CPU.Build.0 = Debug|Any CPU
{694C6EDF-EA52-438F-B745-82B025ECC0E7}.Release|Any CPU.ActiveCfg = Release|Any CPU
{694C6EDF-EA52-438F-B745-82B025ECC0E7}.Release|Any CPU.Build.0 = Release|Any CPU
{7F29EE87-6A63-43C6-B7FF-74DD06815830}.CodeAnalysis|Any CPU.ActiveCfg = CodeAnalysis|Any CPU
{7F29EE87-6A63-43C6-B7FF-74DD06815830}.CodeAnalysis|Any CPU.Build.0 = CodeAnalysis|Any CPU
{7F29EE87-6A63-43C6-B7FF-74DD06815830}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7F29EE87-6A63-43C6-B7FF-74DD06815830}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7F29EE87-6A63-43C6-B7FF-74DD06815830}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7F29EE87-6A63-43C6-B7FF-74DD06815830}.Release|Any CPU.Build.0 = Release|Any CPU
{FEDFE6CA-8282-4C5B-A756-E97189690982}.CodeAnalysis|Any CPU.ActiveCfg = CodeAnalysis|Any CPU
{FEDFE6CA-8282-4C5B-A756-E97189690982}.CodeAnalysis|Any CPU.Build.0 = CodeAnalysis|Any CPU
{FEDFE6CA-8282-4C5B-A756-E97189690982}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{FEDFE6CA-8282-4C5B-A756-E97189690982}.Debug|Any CPU.Build.0 = Debug|Any CPU
{FEDFE6CA-8282-4C5B-A756-E97189690982}.Release|Any CPU.ActiveCfg = Release|Any CPU
{FEDFE6CA-8282-4C5B-A756-E97189690982}.Release|Any CPU.Build.0 = Release|Any CPU
{291EF478-BF24-4935-BC78-E0DCCD0C9A1B}.CodeAnalysis|Any CPU.ActiveCfg = CodeAnalysis|Any CPU
{291EF478-BF24-4935-BC78-E0DCCD0C9A1B}.CodeAnalysis|Any CPU.Build.0 = CodeAnalysis|Any CPU
{291EF478-BF24-4935-BC78-E0DCCD0C9A1B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{291EF478-BF24-4935-BC78-E0DCCD0C9A1B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{291EF478-BF24-4935-BC78-E0DCCD0C9A1B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{291EF478-BF24-4935-BC78-E0DCCD0C9A1B}.Release|Any CPU.Build.0 = Release|Any CPU
{6E81EF98-8F5C-4EED-8B37-456991CA56FD}.CodeAnalysis|Any CPU.ActiveCfg = CodeAnalysis|Any CPU
{6E81EF98-8F5C-4EED-8B37-456991CA56FD}.CodeAnalysis|Any CPU.Build.0 = CodeAnalysis|Any CPU
{6E81EF98-8F5C-4EED-8B37-456991CA56FD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{6E81EF98-8F5C-4EED-8B37-456991CA56FD}.Debug|Any CPU.Build.0 = Debug|Any CPU
{6E81EF98-8F5C-4EED-8B37-456991CA56FD}.Release|Any CPU.ActiveCfg = Release|Any CPU
{6E81EF98-8F5C-4EED-8B37-456991CA56FD}.Release|Any CPU.Build.0 = Release|Any CPU
{F87FD911-4A97-4057-8EAE-1CB96B9A1937}.CodeAnalysis|Any CPU.ActiveCfg = CodeAnalysis|Any CPU
{F87FD911-4A97-4057-8EAE-1CB96B9A1937}.CodeAnalysis|Any CPU.Build.0 = CodeAnalysis|Any CPU
{F87FD911-4A97-4057-8EAE-1CB96B9A1937}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{F87FD911-4A97-4057-8EAE-1CB96B9A1937}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F87FD911-4A97-4057-8EAE-1CB96B9A1937}.Release|Any CPU.ActiveCfg = Release|Any CPU
{F87FD911-4A97-4057-8EAE-1CB96B9A1937}.Release|Any CPU.Build.0 = Release|Any CPU
{8A607AC9-E7DD-4B74-A0B1-47FC95B9838B}.CodeAnalysis|Any CPU.ActiveCfg = CodeAnalysis|Any CPU
{8A607AC9-E7DD-4B74-A0B1-47FC95B9838B}.CodeAnalysis|Any CPU.Build.0 = CodeAnalysis|Any CPU
{8A607AC9-E7DD-4B74-A0B1-47FC95B9838B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{8A607AC9-E7DD-4B74-A0B1-47FC95B9838B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{8A607AC9-E7DD-4B74-A0B1-47FC95B9838B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8A607AC9-E7DD-4B74-A0B1-47FC95B9838B}.Release|Any CPU.Build.0 = Release|Any CPU
{E22245AF-D5E1-46F6-B443-C886983EC50C}.CodeAnalysis|Any CPU.ActiveCfg = CodeAnalysis|Any CPU
{E22245AF-D5E1-46F6-B443-C886983EC50C}.CodeAnalysis|Any CPU.Build.0 = CodeAnalysis|Any CPU
{E22245AF-D5E1-46F6-B443-C886983EC50C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E22245AF-D5E1-46F6-B443-C886983EC50C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E22245AF-D5E1-46F6-B443-C886983EC50C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E22245AF-D5E1-46F6-B443-C886983EC50C}.Release|Any CPU.Build.0 = Release|Any CPU
{22075D5A-E9A1-4E2D-ABA7-8E7CBF2A049E}.CodeAnalysis|Any CPU.ActiveCfg = CodeAnalysis|Any CPU
{22075D5A-E9A1-4E2D-ABA7-8E7CBF2A049E}.CodeAnalysis|Any CPU.Build.0 = CodeAnalysis|Any CPU
{22075D5A-E9A1-4E2D-ABA7-8E7CBF2A049E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{22075D5A-E9A1-4E2D-ABA7-8E7CBF2A049E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{22075D5A-E9A1-4E2D-ABA7-8E7CBF2A049E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{22075D5A-E9A1-4E2D-ABA7-8E7CBF2A049E}.Release|Any CPU.Build.0 = Release|Any CPU
{41D5691F-2720-44A0-9185-EEFE928D2679}.CodeAnalysis|Any CPU.ActiveCfg = CodeAnalysis|Any CPU
{41D5691F-2720-44A0-9185-EEFE928D2679}.CodeAnalysis|Any CPU.Build.0 = CodeAnalysis|Any CPU
{41D5691F-2720-44A0-9185-EEFE928D2679}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{41D5691F-2720-44A0-9185-EEFE928D2679}.Debug|Any CPU.Build.0 = Debug|Any CPU
{41D5691F-2720-44A0-9185-EEFE928D2679}.Release|Any CPU.ActiveCfg = Release|Any CPU
{41D5691F-2720-44A0-9185-EEFE928D2679}.Release|Any CPU.Build.0 = Release|Any CPU
{66DD7CD7-C68F-4D0E-9F3D-3B58C49D1467}.CodeAnalysis|Any CPU.ActiveCfg = CodeAnalysis|Any CPU
{66DD7CD7-C68F-4D0E-9F3D-3B58C49D1467}.CodeAnalysis|Any CPU.Build.0 = CodeAnalysis|Any CPU
{66DD7CD7-C68F-4D0E-9F3D-3B58C49D1467}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{66DD7CD7-C68F-4D0E-9F3D-3B58C49D1467}.Debug|Any CPU.Build.0 = Debug|Any CPU
{66DD7CD7-C68F-4D0E-9F3D-3B58C49D1467}.Release|Any CPU.ActiveCfg = Release|Any CPU
{66DD7CD7-C68F-4D0E-9F3D-3B58C49D1467}.Release|Any CPU.Build.0 = Release|Any CPU
{C19267DD-3984-430C-AE18-4034F85DE4E5}.CodeAnalysis|Any CPU.ActiveCfg = CodeAnalysis|Any CPU
{C19267DD-3984-430C-AE18-4034F85DE4E5}.CodeAnalysis|Any CPU.Build.0 = CodeAnalysis|Any CPU
{C19267DD-3984-430C-AE18-4034F85DE4E5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C19267DD-3984-430C-AE18-4034F85DE4E5}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C19267DD-3984-430C-AE18-4034F85DE4E5}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C19267DD-3984-430C-AE18-4034F85DE4E5}.Release|Any CPU.Build.0 = Release|Any CPU
{43C1B979-D593-4A32-BB3A-4316F1C66D66}.CodeAnalysis|Any CPU.ActiveCfg = CodeAnalysis|Any CPU
{43C1B979-D593-4A32-BB3A-4316F1C66D66}.CodeAnalysis|Any CPU.Build.0 = CodeAnalysis|Any CPU
{43C1B979-D593-4A32-BB3A-4316F1C66D66}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{43C1B979-D593-4A32-BB3A-4316F1C66D66}.Debug|Any CPU.Build.0 = Debug|Any CPU
{43C1B979-D593-4A32-BB3A-4316F1C66D66}.Release|Any CPU.ActiveCfg = Release|Any CPU
{43C1B979-D593-4A32-BB3A-4316F1C66D66}.Release|Any CPU.Build.0 = Release|Any CPU
{25DEF6F6-7F99-4EB7-91ED-5181A346AFE1}.CodeAnalysis|Any CPU.ActiveCfg = CodeAnalysis|Any CPU
{25DEF6F6-7F99-4EB7-91ED-5181A346AFE1}.CodeAnalysis|Any CPU.Build.0 = CodeAnalysis|Any CPU
{25DEF6F6-7F99-4EB7-91ED-5181A346AFE1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{25DEF6F6-7F99-4EB7-91ED-5181A346AFE1}.Debug|Any CPU.Build.0 = Debug|Any CPU
{25DEF6F6-7F99-4EB7-91ED-5181A346AFE1}.Release|Any CPU.ActiveCfg = Release|Any CPU
{25DEF6F6-7F99-4EB7-91ED-5181A346AFE1}.Release|Any CPU.Build.0 = Release|Any CPU
{BF07E947-120D-4E93-93DA-A4BF121753EA}.CodeAnalysis|Any CPU.ActiveCfg = CodeAnalysis|Any CPU
{BF07E947-120D-4E93-93DA-A4BF121753EA}.CodeAnalysis|Any CPU.Build.0 = CodeAnalysis|Any CPU
{BF07E947-120D-4E93-93DA-A4BF121753EA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{BF07E947-120D-4E93-93DA-A4BF121753EA}.Debug|Any CPU.Build.0 = Debug|Any CPU
{BF07E947-120D-4E93-93DA-A4BF121753EA}.Release|Any CPU.ActiveCfg = Release|Any CPU
{BF07E947-120D-4E93-93DA-A4BF121753EA}.Release|Any CPU.Build.0 = Release|Any CPU
{1E89A3E9-0A7F-418F-B4BE-6E38A6315373}.CodeAnalysis|Any CPU.ActiveCfg = CodeAnalysis|Any CPU
{1E89A3E9-0A7F-418F-B4BE-6E38A6315373}.CodeAnalysis|Any CPU.Build.0 = CodeAnalysis|Any CPU
{1E89A3E9-0A7F-418F-B4BE-6E38A6315373}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{1E89A3E9-0A7F-418F-B4BE-6E38A6315373}.Debug|Any CPU.Build.0 = Debug|Any CPU
{1E89A3E9-0A7F-418F-B4BE-6E38A6315373}.Release|Any CPU.ActiveCfg = Release|Any CPU
{1E89A3E9-0A7F-418F-B4BE-6E38A6315373}.Release|Any CPU.Build.0 = Release|Any CPU
{821A136C-7C6F-44C6-A9E6-C39B5BFB1483}.CodeAnalysis|Any CPU.ActiveCfg = CodeAnalysis|Any CPU
{821A136C-7C6F-44C6-A9E6-C39B5BFB1483}.CodeAnalysis|Any CPU.Build.0 = CodeAnalysis|Any CPU
{821A136C-7C6F-44C6-A9E6-C39B5BFB1483}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{821A136C-7C6F-44C6-A9E6-C39B5BFB1483}.Debug|Any CPU.Build.0 = Debug|Any CPU
{821A136C-7C6F-44C6-A9E6-C39B5BFB1483}.Release|Any CPU.ActiveCfg = Release|Any CPU
{821A136C-7C6F-44C6-A9E6-C39B5BFB1483}.Release|Any CPU.Build.0 = Release|Any CPU
{C3BEF382-C7C4-454D-B017-1EAC03E9A82C}.CodeAnalysis|Any CPU.ActiveCfg = CodeAnalysis|Any CPU
{C3BEF382-C7C4-454D-B017-1EAC03E9A82C}.CodeAnalysis|Any CPU.Build.0 = CodeAnalysis|Any CPU
{C3BEF382-C7C4-454D-B017-1EAC03E9A82C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C3BEF382-C7C4-454D-B017-1EAC03E9A82C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C3BEF382-C7C4-454D-B017-1EAC03E9A82C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C3BEF382-C7C4-454D-B017-1EAC03E9A82C}.Release|Any CPU.Build.0 = Release|Any CPU
{5ABD9968-F3A3-4967-B768-A6142F69759E}.CodeAnalysis|Any CPU.ActiveCfg = CodeAnalysis|Any CPU
{5ABD9968-F3A3-4967-B768-A6142F69759E}.CodeAnalysis|Any CPU.Build.0 = CodeAnalysis|Any CPU
{5ABD9968-F3A3-4967-B768-A6142F69759E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{5ABD9968-F3A3-4967-B768-A6142F69759E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{5ABD9968-F3A3-4967-B768-A6142F69759E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{5ABD9968-F3A3-4967-B768-A6142F69759E}.Release|Any CPU.Build.0 = Release|Any CPU
{9AAFB58C-B8C1-4D7F-80E6-7B95C94A829B}.CodeAnalysis|Any CPU.ActiveCfg = CodeAnalysis|Any CPU
{9AAFB58C-B8C1-4D7F-80E6-7B95C94A829B}.CodeAnalysis|Any CPU.Build.0 = CodeAnalysis|Any CPU
{9AAFB58C-B8C1-4D7F-80E6-7B95C94A829B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{9AAFB58C-B8C1-4D7F-80E6-7B95C94A829B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{9AAFB58C-B8C1-4D7F-80E6-7B95C94A829B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{9AAFB58C-B8C1-4D7F-80E6-7B95C94A829B}.Release|Any CPU.Build.0 = Release|Any CPU
{A1A20049-04C2-4676-93CF-92449C4BBAA9}.CodeAnalysis|Any CPU.ActiveCfg = CodeAnalysis|Any CPU
{A1A20049-04C2-4676-93CF-92449C4BBAA9}.CodeAnalysis|Any CPU.Build.0 = CodeAnalysis|Any CPU
{A1A20049-04C2-4676-93CF-92449C4BBAA9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A1A20049-04C2-4676-93CF-92449C4BBAA9}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A1A20049-04C2-4676-93CF-92449C4BBAA9}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A1A20049-04C2-4676-93CF-92449C4BBAA9}.Release|Any CPU.Build.0 = Release|Any CPU
{6C320AD9-F380-4F8B-85F9-0689F88766EC}.CodeAnalysis|Any CPU.ActiveCfg = CodeAnalysis|Any CPU
{6C320AD9-F380-4F8B-85F9-0689F88766EC}.CodeAnalysis|Any CPU.Build.0 = CodeAnalysis|Any CPU
{6C320AD9-F380-4F8B-85F9-0689F88766EC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{6C320AD9-F380-4F8B-85F9-0689F88766EC}.Debug|Any CPU.Build.0 = Debug|Any CPU
{6C320AD9-F380-4F8B-85F9-0689F88766EC}.Release|Any CPU.ActiveCfg = Release|Any CPU
{6C320AD9-F380-4F8B-85F9-0689F88766EC}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{8F18041B-9410-4C36-A9C5-067813DF5F31} = {A9836F9E-6DB3-4D9F-ADCA-CF42D8C8BA93}
{22BABB60-8F02-4027-AFFC-ACF069954536} = {A9836F9E-6DB3-4D9F-ADCA-CF42D8C8BA93}
{76EFA9C5-8D7E-4FDF-B710-E20F8B6B00D2} = {A9836F9E-6DB3-4D9F-ADCA-CF42D8C8BA93}
{9B7E3740-6161-4548-833C-4BBCA43B970E} = {A9836F9E-6DB3-4D9F-ADCA-CF42D8C8BA93}
{0939B11A-FE4E-4BA1-8AD6-D97741EE314F} = {A9836F9E-6DB3-4D9F-ADCA-CF42D8C8BA93}
{4D39BAAF-8A96-473E-AB79-C8A341885137} = {A9836F9E-6DB3-4D9F-ADCA-CF42D8C8BA93}
{55A15F40-1435-4248-A7F2-2A146BB83586} = {A9836F9E-6DB3-4D9F-ADCA-CF42D8C8BA93}
{0C7CE809-0F72-4C19-8C64-D6573E4D9521} = {A9836F9E-6DB3-4D9F-ADCA-CF42D8C8BA93}
{C23F02FC-4538-43F5-ABBA-38BA069AEA8F} = {A9836F9E-6DB3-4D9F-ADCA-CF42D8C8BA93}
{3D3FFD8A-624D-4E9B-954B-E1C105507975} = {A9836F9E-6DB3-4D9F-ADCA-CF42D8C8BA93}
{D3CF7430-6DA4-42B0-BD90-CA39D16687B2} = {A9836F9E-6DB3-4D9F-ADCA-CF42D8C8BA93}
{0BB62A1D-E6B5-49FA-9E3C-6AF679A66DFE} = {C40883CD-366D-4534-8B58-3EA0D13136DF}
{268DEE9D-F323-4A00-8ED8-3784388C3E3A} = {C40883CD-366D-4534-8B58-3EA0D13136DF}
{0F4870DB-A799-4DBA-99DF-0D74BB52FEC2} = {C40883CD-366D-4534-8B58-3EA0D13136DF}
{D3313BDF-8071-4AC8-9D98-ABF7F9E88A57} = {C40883CD-366D-4534-8B58-3EA0D13136DF}
{66A74F3C-A106-4C1E-BAA0-001908FEA2CA} = {C40883CD-366D-4534-8B58-3EA0D13136DF}
{E2D008A9-4D1D-4F6B-8325-4ED717D6EA0A} = {C40883CD-366D-4534-8B58-3EA0D13136DF}
{CD48EB41-92A5-4628-A0F7-6A43DF58827E} = {C40883CD-366D-4534-8B58-3EA0D13136DF}
{2C653A66-8159-4A41-954F-A67915DFDA87} = {C40883CD-366D-4534-8B58-3EA0D13136DF}
{21C729D6-ECF8-47EF-A236-7C6A4272EAF0} = {C40883CD-366D-4534-8B58-3EA0D13136DF}
{8AC2A2E4-2F11-4D40-A887-62E2583A65E6} = {C40883CD-366D-4534-8B58-3EA0D13136DF}
{6C28DA70-60F1-4442-967F-591BF3962EC5} = {C40883CD-366D-4534-8B58-3EA0D13136DF}
{DDC1CE0C-486E-4E35-BB3B-EAB61F8F9440} = {A9836F9E-6DB3-4D9F-ADCA-CF42D8C8BA93}
{7F2C796F-43B2-4F8F-ABFF-A154EC8AAFA1} = {C40883CD-366D-4534-8B58-3EA0D13136DF}
{668E9021-CE84-49D9-98FB-DF125A9FCDB0} = {A9836F9E-6DB3-4D9F-ADCA-CF42D8C8BA93}
{FCCC4CB7-BAF7-4A57-9F89-E5766FE536C0} = {C40883CD-366D-4534-8B58-3EA0D13136DF}
{7AF77741-9158-4D5F-8782-8F21FADF025F} = {C40883CD-366D-4534-8B58-3EA0D13136DF}
{66492E69-CE4C-4FB1-9B1F-88DEE09D06F1} = {A9836F9E-6DB3-4D9F-ADCA-CF42D8C8BA93}
{A0187BC2-8325-4BB2-8697-7F955CF4173E} = {A9836F9E-6DB3-4D9F-ADCA-CF42D8C8BA93}
{3267DFC6-B34D-4011-BC0F-D3B56AF6F608} = {C40883CD-366D-4534-8B58-3EA0D13136DF}
{EA62944F-BD25-4730-9405-9BE8FF5BEACD} = {C40883CD-366D-4534-8B58-3EA0D13136DF}
{4CBFC7D3-1600-4CE5-BC6B-AC7BC2D6F853} = {A9836F9E-6DB3-4D9F-ADCA-CF42D8C8BA93}
{694C6EDF-EA52-438F-B745-82B025ECC0E7} = {C40883CD-366D-4534-8B58-3EA0D13136DF}
{7F29EE87-6A63-43C6-B7FF-74DD06815830} = {C40883CD-366D-4534-8B58-3EA0D13136DF}
{FEDFE6CA-8282-4C5B-A756-E97189690982} = {A9836F9E-6DB3-4D9F-ADCA-CF42D8C8BA93}
{291EF478-BF24-4935-BC78-E0DCCD0C9A1B} = {C40883CD-366D-4534-8B58-3EA0D13136DF}
{6E81EF98-8F5C-4EED-8B37-456991CA56FD} = {A9836F9E-6DB3-4D9F-ADCA-CF42D8C8BA93}
{F87FD911-4A97-4057-8EAE-1CB96B9A1937} = {C40883CD-366D-4534-8B58-3EA0D13136DF}
{8A607AC9-E7DD-4B74-A0B1-47FC95B9838B} = {A9836F9E-6DB3-4D9F-ADCA-CF42D8C8BA93}
{E22245AF-D5E1-46F6-B443-C886983EC50C} = {C40883CD-366D-4534-8B58-3EA0D13136DF}
{22075D5A-E9A1-4E2D-ABA7-8E7CBF2A049E} = {A9836F9E-6DB3-4D9F-ADCA-CF42D8C8BA93}
{41D5691F-2720-44A0-9185-EEFE928D2679} = {C40883CD-366D-4534-8B58-3EA0D13136DF}
{66DD7CD7-C68F-4D0E-9F3D-3B58C49D1467} = {A9836F9E-6DB3-4D9F-ADCA-CF42D8C8BA93}
{C19267DD-3984-430C-AE18-4034F85DE4E5} = {C40883CD-366D-4534-8B58-3EA0D13136DF}
{43C1B979-D593-4A32-BB3A-4316F1C66D66} = {A9836F9E-6DB3-4D9F-ADCA-CF42D8C8BA93}
{25DEF6F6-7F99-4EB7-91ED-5181A346AFE1} = {A9836F9E-6DB3-4D9F-ADCA-CF42D8C8BA93}
{BF07E947-120D-4E93-93DA-A4BF121753EA} = {C40883CD-366D-4534-8B58-3EA0D13136DF}
{1E89A3E9-0A7F-418F-B4BE-6E38A6315373} = {C40883CD-366D-4534-8B58-3EA0D13136DF}
{821A136C-7C6F-44C6-A9E6-C39B5BFB1483} = {A9836F9E-6DB3-4D9F-ADCA-CF42D8C8BA93}
{C3BEF382-C7C4-454D-B017-1EAC03E9A82C} = {C40883CD-366D-4534-8B58-3EA0D13136DF}
{5ABD9968-F3A3-4967-B768-A6142F69759E} = {A9836F9E-6DB3-4D9F-ADCA-CF42D8C8BA93}
{9AAFB58C-B8C1-4D7F-80E6-7B95C94A829B} = {A9836F9E-6DB3-4D9F-ADCA-CF42D8C8BA93}
{A1A20049-04C2-4676-93CF-92449C4BBAA9} = {C40883CD-366D-4534-8B58-3EA0D13136DF}
{6C320AD9-F380-4F8B-85F9-0689F88766EC} = {C40883CD-366D-4534-8B58-3EA0D13136DF}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {A855CFDC-9BEE-43A9-A3EA-4C4624A747DB}
EndGlobalSection
EndGlobal
================================================
FILE: SECURITY.md
================================================
# Security Policy
## Reporting a Vulnerability
Security issues and bugs should be reported privately to the Microsoft Security Response Center (MSRC), either by emailing secure@microsoft.com or via the portal at https://msrc.microsoft.com.
You should receive a response within 24 hours. If for some reason you do not, please follow up via email to ensure we received your
original message. Further information, including the MSRC PGP key, can be found in the [MSRC Report an Issue FAQ](https://www.microsoft.com/en-us/msrc/faqs-report-an-issue).
Please do not open issues for anything you think might have a security implication.
================================================
FILE: Settings.StyleCop
================================================
NoMerge
False
False
as
db
dc
do
ef
id
if
in
is
my
no
on
sl
to
ui
vs
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
True
True
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
Copyright (c) .NET Foundation. All rights reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
================================================
FILE: Tools.sln
================================================
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15
VisualStudioVersion = 15.0.27016.1
MinimumVisualStudioVersion = 15.0
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.Web.FxCop", "tools\src\Microsoft.Web.FxCop\Microsoft.Web.FxCop.csproj", "{F439D4E6-3FAC-4C30-9585-6D258133A2BF}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{F439D4E6-3FAC-4C30-9585-6D258133A2BF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{F439D4E6-3FAC-4C30-9585-6D258133A2BF}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F439D4E6-3FAC-4C30-9585-6D258133A2BF}.Release|Any CPU.ActiveCfg = Release|Any CPU
{F439D4E6-3FAC-4C30-9585-6D258133A2BF}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {F8728741-0321-4EF6-9359-7DF2DCE6E99E}
EndGlobalSection
EndGlobal
================================================
FILE: azure-pipelines-public.yml
================================================
parameters:
# Test only the Release build by default.
- name: ReleaseBuildTarget
displayName: 'Build which target for Release?'
type: string
values: [ Build, Integration, UnitTest ]
default: UnitTest
- name: OtherBuildTarget
displayName: 'Build which target for Debug/CodeAnalysis?'
type: string
values: [ Build, Integration, UnitTest ]
default: Build
variables:
- name: DOTNET_CLI_TELEMETRY_OPTOUT
value: 1
- name: DOTNET_NOLOGO
value: 1
# Run CodeQL3000 tasks in a separate internal pipeline; not needed here.
- name: Codeql.SkipTaskAutoInjection
value: true
trigger: [main]
pr: ['*']
stages:
- stage: build
displayName: Build
jobs:
- template: /eng/templates/default-build.yml
parameters:
ReleaseBuildTarget: ${{ parameters.ReleaseBuildTarget }}
OtherBuildTarget: ${{ parameters.OtherBuildTarget }}
================================================
FILE: azure-pipelines.yml
================================================
parameters:
# Test only the Release build by default.
- name: ReleaseBuildTarget
displayName: 'Build which target for Release?'
type: string
values: [ Build, Integration, UnitTest ]
default: Build
- name: OtherBuildTarget
displayName: 'Build which target for Debug/CodeAnalysis?'
type: string
values: [ Build, Integration, UnitTest ]
default: Build
variables:
- name: DOTNET_CLI_TELEMETRY_OPTOUT
value: 1
- name: DOTNET_NOLOGO
value: 1
# Run CodeQL3000 tasks in a separate internal pipeline; not needed here.
- name: Codeql.SkipTaskAutoInjection
value: true
trigger: [main]
pr: ['*']
resources:
repositories:
# Repo: 1ESPipelineTemplates/1ESPipelineTemplates
- repository: 1esPipelines
type: git
name: 1ESPipelineTemplates/1ESPipelineTemplates
ref: refs/tags/release
extends:
template: v1/1ES.Official.PipelineTemplate.yml@1esPipelines
parameters:
settings:
networkIsolationPolicy: Permissive, CFSClean, CFSClean2
sdl:
policheck:
enabled: true
tsa:
enabled: true
pool:
name: NetCore1ESPool-Svc-Internal
demands:
- ImageOverride -equals windows.vs2019.amd64
- ImageVersionOverride -equals 2026.0304.014948
os: windows
stages:
- stage: build
displayName: Build
jobs:
- template: /eng/templates/default-build.yml@self
parameters:
ReleaseBuildTarget: ${{ parameters.ReleaseBuildTarget }}
OtherBuildTarget: ${{ parameters.OtherBuildTarget }}
================================================
FILE: build.cmd
================================================
@echo off
setlocal
if exist bin goto Build
mkdir bin
:Build
REM Require VS2019 (v16.0) on the system. Use `vswhere` for the search because it can find all VS installations.
set vswhere="%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe"
if not exist %vswhere% (
set vswhere="%ProgramFiles%\Microsoft Visual Studio\Installer\vswhere.exe"
)
if not exist %vswhere% (
REM vswhere.exe not in normal locations; check the Path.
for %%X in (vswhere.exe) do (
set vswhere="%%~$PATH:X"
)
)
if not exist %vswhere% (
echo Could not find vswhere.exe. Please run this from a Visual Studio developer prompt.
goto BuildFail
)
set InstallDir=
for /f "usebackq tokens=*" %%i in (`%vswhere% -version 16 -latest -prerelease -products * ^
-requires Microsoft.Net.Component.4.5.TargetingPack ^
-requires Microsoft.Net.Component.4.5.2.TargetingPack ^
-requires Microsoft.Net.Component.4.6.2.TargetingPack ^
-property installationPath`) do (
set "InstallDir=%%i"
)
if not DEFINED InstallDir (
echo "Could not find a VS2019 installation with the necessary components (targeting packs for v4.5, v4.5.2, and v4.6.2)."
echo Please install VS2019 or the missing components.
goto BuildFail
)
REM Find a 64bit MSBuild and add it to path. Require v17.8.3 or later due to our .NET SDK choice.
REM Check for VS2022 first.
set InstallDir=
for /f "usebackq tokens=*" %%i in (`%vswhere% -version 17.8.3 -latest -prerelease -products * ^
-requires Microsoft.Component.MSBuild ^
-property installationPath`) do (
set "InstallDir=%%i"
)
if DEFINED InstallDir (
REM Add MSBuild to the path.
set "PATH=%InstallDir%\MSBuild\Current\Bin;%PATH%"
goto FoundMSBuild
)
REM Otherwise find or install an xcopy-able MSBuild.
echo "Could not find a VS2022 installation with the necessary components (MSBuild). Falling back..."
set "MSBuildVersion=17.8.5"
set "Command=[System.Threading.Thread]::CurrentThread.CurrentCulture = ''"
set "Command=%Command%; [System.Threading.Thread]::CurrentThread.CurrentUICulture = ''"
set "Command=%Command%; try { & '%~dp0eng\GetXCopyMSBuild.ps1' %MSBuildVersion%; exit $LASTEXITCODE }"
set "Command=%Command% catch { write-host $_; exit 1 }"
PowerShell -NoProfile -NoLogo -ExecutionPolicy Bypass -Command "%Command%"
if %ERRORLEVEL% neq 0 goto BuildFail
REM Add MSBuild to the path.
set "PATH=%~dp0.msbuild\%MSBuildVersion%\tools\MSBuild\Current\Bin;%PATH%"
:FoundMSBuild
REM Configure NuGet operations to work w/in this repo i.e. do not pollute system packages folder.
REM Note this causes two copies of packages restored using packages.config to land in this folder e.g.
REM StyleCpy.5.0.0/ and stylecop/5.0.0/.
set "NUGET_PACKAGES=%~dp0packages"
REM Are we running in a local dev environment (not on CI)?
if DEFINED CI (set Desktop=false) else if DEFINED TEAMCITY_VERSION (set Desktop=false) else (set Desktop=true)
pushd %~dp0
if "%1" == "" goto BuildDefaults
MSBuild "%~dp0Runtime.msbuild" /m /nr:false /p:Platform="Any CPU" /p:Desktop=%Desktop% /v:M ^
/fl /fileLoggerParameters:LogFile=bin\msbuild.log;Verbosity=Normal /consoleLoggerParameters:Summary /t:%*
if %ERRORLEVEL% neq 0 goto BuildFail
goto BuildSuccess
:BuildDefaults
MSBuild "%~dp0Runtime.msbuild" /m /nr:false /p:Platform="Any CPU" /p:Desktop=%Desktop% /v:M ^
/fl /fileLoggerParameters:LogFile=bin\msbuild.log;Verbosity=Normal /consoleLoggerParameters:Summary
if %ERRORLEVEL% neq 0 goto BuildFail
goto BuildSuccess
:BuildFail
echo.
echo *** BUILD FAILED ***
popd
endlocal
exit /B 999
:BuildSuccess
echo.
echo **** BUILD SUCCESSFUL ***
popd
endlocal
exit /B 0
================================================
FILE: eng/GetXCopyMSBuild.ps1
================================================
# Lifted from https://github.com/dotnet/arcade/blob/main/eng/common/tools.ps1
[CmdletBinding(DefaultParameterSetName='Groups')]
param(
[string]$Version = '17.4.1'
)
Set-StrictMode -Version 2
$ErrorActionPreference = 'Stop'
function Create-Directory ([string[]] $path) {
New-Item -Path $path -Force -ItemType 'Directory' | Out-Null
}
function Unzip([string]$zipfile, [string]$outpath) {
Add-Type -AssemblyName System.IO.Compression.FileSystem
[System.IO.Compression.ZipFile]::ExtractToDirectory($zipfile, $outpath)
}
function InitializeXCopyMSBuild([string]$packageVersion, [bool]$install, [string]$ToolsDir) {
$packageName = 'RoslynTools.MSBuild'
$packageDir = Join-Path $ToolsDir $packageVersion
$packagePath = Join-Path $packageDir "$packageName.$packageVersion.nupkg"
if (!(Test-Path $packageDir)) {
if (!$install) {
return $null
}
Create-Directory $packageDir
Write-Host "Downloading $packageName $packageVersion"
$ProgressPreference = 'SilentlyContinue' # Don't display the console progress UI - it's a huge perf hit
Invoke-WebRequest "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-eng/nuget/v3/flat2/$packageName/$packageVersion/$packageName.$packageVersion.nupkg" -OutFile $packagePath
Unzip $packagePath $packageDir
}
return Join-Path $packageDir 'tools'
}
$RepoRoot = Resolve-Path (Join-Path $PSScriptRoot '..\')
InitializeXCopyMSBuild -packageVersion $Version -install $true -ToolsDir (join-path $RepoRoot .msbuild)
================================================
FILE: eng/templates/default-build.yml
================================================
parameters:
ReleaseBuildTarget: ''
OtherBuildTarget: ''
jobs:
- job: build
displayName: Build
${{ if eq(variables['System.TeamProject'], 'public') }}:
pool:
name: NetCore-Svc-Public
demands:
- ImageOverride -equals windows.vs2019.amd64.open
timeoutInMinutes: 30
strategy:
matrix:
Release:
_BuildTarget: ${{ parameters.ReleaseBuildTarget }}
_Configuration: Release
_StyleCopEnabled: true
# Do CG work only in internal pipelines.
skipComponentGovernanceDetection: ${{ eq(variables['System.TeamProject'], 'public') }}
Debug:
_BuildTarget: ${{ parameters.OtherBuildTarget }}
_Configuration: Debug
_StyleCopEnabled: false
# Do not redo CG work. Configuration changes in this part of the matrix are not relevant to CG.
skipComponentGovernanceDetection: true
CodeAnalysis:
_BuildTarget: ${{ parameters.OtherBuildTarget }}
_Configuration: CodeAnalysis
_StyleCopEnabled: false
# Do not redo CG work. Configuration changes in this part of the matrix are not relevant to CG.
skipComponentGovernanceDetection: true
steps:
- checkout: self
clean: true
displayName: Checkout
- task: UseDotNet@2
displayName: Get .NET SDK
inputs:
useGlobalJson: true
- task: UseDotNet@2
displayName: Get .NET 2.1 runtime
inputs:
packageType: runtime
version: '2.1.x'
- script: .\build.cmd EnableSkipStrongNames
displayName: Enable SkipStrongNames
- script: .\build.cmd $(_BuildTarget) ^
/binaryLogger:artifacts/msbuild.binlog /p:Configuration=$(_Configuration) /p:StyleCopEnabled=$(_StyleCopEnabled) ^
/fileLoggerParameters:LogFile=artifacts/msbuild.log;Summary;Verbosity=minimal
displayName: Build
- ${{ if eq(variables['System.TeamProject'], 'public') }}:
- task: PublishBuildArtifacts@1
displayName: Upload test results
condition: and(always(), ne(variables._BuildTarget, 'Build'))
continueOnError: true
inputs:
pathtoPublish: ./bin/$(_Configuration)/Test/TestResults/
artifactName: $(_Configuration) Test Results $(System.JobId)
artifactType: Container
parallel: true
- task: PublishTestResults@2
condition: and(always(), ne(variables._BuildTarget, 'Build'))
continueOnError: true
displayName: Publish test results
inputs:
mergeTestResults: true
searchFolder: ./bin/$(_Configuration)/Test/TestResults/
testResultsFiles: '*.xml'
testRunner: xUnit
testRunTitle: $(_Configuration)
- task: PublishBuildArtifacts@1
displayName: Upload logs
condition: always()
continueOnError: true
inputs:
pathtoPublish: ./artifacts/
artifactName: $(_Configuration) Logs $(System.JobId)
artifactType: Container
parallel: true
- ${{ if eq(variables['System.TeamProject'], 'internal') }}:
- task: 1ES.PublishPipelineArtifact@1
inputs:
condition: and(always(), ne(variables._BuildTarget, 'Build'))
path: ./bin/$(_Configuration)/Test/TestResults/
artifact: $(_Configuration) Test Results $(System.JobId)
- task: 1ES.PublishPipelineArtifact@1
inputs:
path: ./artifacts/
artifact: $(_Configuration) Logs $(System.JobId)
================================================
FILE: es-metadata.yml
================================================
schemaVersion: 0.0.1
isProduction: true
accountableOwners:
service: 4db45fa9-fb0f-43ce-b523-ad1da773dfbc
routing:
defaultAreaPath:
org: devdiv
path: DevDiv\ASP.NET Core
================================================
FILE: global.json
================================================
{
"sdk": {
"version": "8.0.419",
"rollForward": "major"
}
}
================================================
FILE: src/CodeAnalysisDictionary.xml
================================================
Multi
Bitly
Digg
Facebook
Reddit
Captcha
Facebook
Gravatar
JSON
Lookahead
MVC
Param
Params
Pluralizer
Pragma
Pragmas
Templating
Unvalidated
Validator
Validators
Validatable
WebPage
cshtml
vbhtml
asax
Eval
Src
Charset
Coords
Rel
Dto
Tokenizer
ReDim
OAuth
OpenID
Yadis
fwlink
Edm
Deserializer
Api
ws
enc
dir
Auth
bg
Cors
Owin
Unbuffered
Rfc
Realtime
ModelName
BSON
Untyped
Behavior
Callback
Canceled
Color
Fallback
Markup
Preflight
WebPage
WebPages
TimeLine
oAuth
userName
modelName
HasId
ID
Db
Dto
================================================
FILE: src/Common/AttributeList.cs
================================================
// Copyright (c) .NET Foundation. All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics.Contracts;
namespace System.ComponentModel
{
///
/// Wrapper for AttributeCollection to provide generic collection implementation.
///
internal sealed class AttributeList : IList
{
private readonly AttributeCollection _attributes;
public AttributeList(AttributeCollection attributes)
{
Contract.Assert(attributes != null);
_attributes = attributes;
}
public int Count
{
get
{
return _attributes.Count;
}
}
public bool IsReadOnly
{
get
{
return true;
}
}
public Attribute this[int index]
{
get
{
return _attributes[index];
}
set
{
throw new NotSupportedException();
}
}
public void Add(Attribute attribute)
{
throw new NotSupportedException();
}
public void Clear()
{
throw new NotSupportedException();
}
public bool Contains(Attribute attribute)
{
return _attributes.Contains(attribute);
}
public void CopyTo(Attribute[] target, int startIndex)
{
_attributes.CopyTo(target, startIndex);
}
public IEnumerator GetEnumerator()
{
for (int i = 0; i < _attributes.Count; i++)
{
yield return _attributes[i];
}
}
IEnumerator IEnumerable.GetEnumerator()
{
return ((IEnumerable)_attributes).GetEnumerator();
}
public int IndexOf(Attribute attribute)
{
for (int i = 0; i < _attributes.Count; i++)
{
if (attribute == _attributes[i])
{
return i;
}
}
return -1;
}
public void Insert(int index, Attribute attribute)
{
throw new NotSupportedException();
}
bool ICollection.Remove(Attribute attribute)
{
throw new NotSupportedException();
}
public void RemoveAt(int index)
{
throw new NotSupportedException();
}
}
}
================================================
FILE: src/Common/CollectionExtensions.cs
================================================
// Copyright (c) .NET Foundation. All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
using System.Collections.ObjectModel;
using System.Diagnostics.Contracts;
using System.Linq;
namespace System.Collections.Generic
{
///
/// Helper extension methods for fast use of collections.
///
internal static class CollectionExtensions
{
///
/// Return a new array with the value added to the end. Slow and best suited to long lived arrays with few writes relative to reads.
///
public static T[] AppendAndReallocate(this T[] array, T value)
{
Contract.Assert(array != null);
int originalLength = array.Length;
T[] newArray = new T[originalLength + 1];
array.CopyTo(newArray, 0);
newArray[originalLength] = value;
return newArray;
}
///
/// Return the enumerable as an Array, copying if required. Optimized for common case where it is an Array.
/// Avoid mutating the return value.
///
public static T[] AsArray(this IEnumerable values)
{
Contract.Assert(values != null);
T[] array = values as T[];
if (array == null)
{
array = values.ToArray();
}
return array;
}
///
/// Return the enumerable as a Collection of T, copying if required. Optimized for the common case where it is
/// a Collection of T and avoiding a copy if it implements IList of T. Avoid mutating the return value.
///
public static Collection AsCollection(this IEnumerable enumerable)
{
Contract.Assert(enumerable != null);
Collection collection = enumerable as Collection;
if (collection != null)
{
return collection;
}
// Check for IList so that collection can wrap it instead of copying
IList list = enumerable as IList;
if (list == null)
{
list = new List(enumerable);
}
return new Collection(list);
}
///
/// Return the enumerable as a IList of T, copying if required. Avoid mutating the return value.
///
public static IList AsIList(this IEnumerable enumerable)
{
Contract.Assert(enumerable != null);
IList list = enumerable as IList;
if (list != null)
{
return list;
}
return new List(enumerable);
}
///
/// Return the enumerable as a List of T, copying if required. Optimized for common case where it is an List of T
/// or a ListWrapperCollection of T. Avoid mutating the return value.
///
public static List AsList(this IEnumerable enumerable)
{
Contract.Assert(enumerable != null);
List list = enumerable as List;
if (list != null)
{
return list;
}
ListWrapperCollection listWrapper = enumerable as ListWrapperCollection;
if (listWrapper != null)
{
return listWrapper.ItemsList;
}
return new List(enumerable);
}
///
/// Remove values from the list starting at the index start.
///
public static void RemoveFrom(this List list, int start)
{
Contract.Assert(list != null);
Contract.Assert(start >= 0 && start <= list.Count);
list.RemoveRange(start, list.Count - start);
}
///
/// Return the only value from list, the type's default value if empty, or call the errorAction for 2 or more.
///
public static T SingleDefaultOrError(this IList list, Action errorAction, TArg1 errorArg1)
{
Contract.Assert(list != null);
Contract.Assert(errorAction != null);
switch (list.Count)
{
case 0:
return default(T);
case 1:
T value = list[0];
return value;
default:
errorAction(errorArg1);
return default(T);
}
}
///
/// Returns a single value in list matching type TMatch if there is only one, null if there are none of type TMatch or calls the
/// errorAction with errorArg1 if there is more than one.
///
public static TMatch SingleOfTypeDefaultOrError(this IList list, Action errorAction, TArg1 errorArg1) where TMatch : class
{
Contract.Assert(list != null);
Contract.Assert(errorAction != null);
TMatch result = null;
for (int i = 0; i < list.Count; i++)
{
TMatch typedValue = list[i] as TMatch;
if (typedValue != null)
{
if (result == null)
{
result = typedValue;
}
else
{
errorAction(errorArg1);
return null;
}
}
}
return result;
}
///
/// Convert an ICollection to an array, removing null values. Fast path for case where there are no null values.
///
public static T[] ToArrayWithoutNulls(this ICollection collection) where T : class
{
Contract.Assert(collection != null);
T[] result = new T[collection.Count];
int count = 0;
foreach (T value in collection)
{
if (value != null)
{
result[count] = value;
count++;
}
}
if (count == collection.Count)
{
return result;
}
else
{
T[] trimmedResult = new T[count];
Array.Copy(result, trimmedResult, count);
return trimmedResult;
}
}
///
/// Convert the array to a Dictionary using the keySelector to extract keys from values and the specified comparer. Optimized for array input.
///
public static Dictionary ToDictionaryFast(this TValue[] array, Func keySelector, IEqualityComparer comparer)
{
Contract.Assert(array != null);
Contract.Assert(keySelector != null);
Dictionary dictionary = new Dictionary(array.Length, comparer);
for (int i = 0; i < array.Length; i++)
{
TValue value = array[i];
dictionary.Add(keySelector(value), value);
}
return dictionary;
}
///
/// Convert the list to a Dictionary using the keySelector to extract keys from values and the specified comparer. Optimized for IList of T input with fast path for array.
///
public static Dictionary ToDictionaryFast(this IList list, Func keySelector, IEqualityComparer comparer)
{
Contract.Assert(list != null);
Contract.Assert(keySelector != null);
TValue[] array = list as TValue[];
if (array != null)
{
return ToDictionaryFast(array, keySelector, comparer);
}
return ToDictionaryFastNoCheck(list, keySelector, comparer);
}
///
/// Convert the enumerable to a Dictionary using the keySelector to extract keys from values and the specified comparer. Fast paths for array and IList of T.
///
public static Dictionary ToDictionaryFast(this IEnumerable enumerable, Func keySelector, IEqualityComparer comparer)
{
Contract.Assert(enumerable != null);
Contract.Assert(keySelector != null);
TValue[] array = enumerable as TValue[];
if (array != null)
{
return ToDictionaryFast(array, keySelector, comparer);
}
IList list = enumerable as IList;
if (list != null)
{
return ToDictionaryFastNoCheck(list, keySelector, comparer);
}
Dictionary dictionary = new Dictionary(comparer);
foreach (TValue value in enumerable)
{
dictionary.Add(keySelector(value), value);
}
return dictionary;
}
///
/// Convert the list to a Dictionary using the keySelector to extract keys from values and the specified comparer. Optimized for IList of T input. No checking for other types.
///
private static Dictionary ToDictionaryFastNoCheck(IList list, Func keySelector, IEqualityComparer comparer)
{
Contract.Assert(list != null);
Contract.Assert(keySelector != null);
int listCount = list.Count;
Dictionary dictionary = new Dictionary(listCount, comparer);
for (int i = 0; i < listCount; i++)
{
TValue value = list[i];
dictionary.Add(keySelector(value), value);
}
return dictionary;
}
}
}
================================================
FILE: src/Common/CommonWebApiResources.Designer.cs
================================================
//------------------------------------------------------------------------------
//
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
//
//------------------------------------------------------------------------------
namespace System.Web.Http.Properties {
using System;
using System.Linq;
using System.Reflection;
///
/// A strongly-typed resource class, for looking up localized strings, etc.
///
// This class was auto-generated by the StronglyTypedResourceBuilder
// class via a tool like ResGen or Visual Studio.
// To add or remove a member, edit your .ResX file then rerun ResGen
// with the /str option, or rebuild your VS project.
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class CommonWebApiResources {
private static global::System.Resources.ResourceManager resourceMan;
private static global::System.Globalization.CultureInfo resourceCulture;
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
internal CommonWebApiResources() {
}
///
/// Returns the cached ResourceManager instance used by this class.
///
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Resources.ResourceManager ResourceManager {
get {
if (object.ReferenceEquals(resourceMan, null)) {
#if NETSTANDARD1_3
var assembly = typeof(CommonWebApiResources).GetTypeInfo().Assembly;
#else
var assembly = typeof(CommonWebApiResources).Assembly;
#endif
// Find the CommonResources.resources file's full resource name in this assembly
string commonResourcesName = assembly.GetManifestResourceNames().Where(s => s.EndsWith("CommonWebApiResources.resources", StringComparison.OrdinalIgnoreCase)).Single();
// Trim off the ".resources"
commonResourcesName = commonResourcesName.Substring(0, commonResourcesName.Length - 10);
// Load the resource manager
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager(commonResourcesName, assembly);
resourceMan = temp;
}
return resourceMan;
}
}
///
/// Overrides the current thread's CurrentUICulture property for all
/// resource lookups using this strongly typed resource class.
///
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Globalization.CultureInfo Culture {
get {
return resourceCulture;
}
set {
resourceCulture = value;
}
}
///
/// Looks up a localized string similar to Relative URI values are not supported: '{0}'. The URI must be absolute..
///
internal static string ArgumentInvalidAbsoluteUri {
get {
return ResourceManager.GetString("ArgumentInvalidAbsoluteUri", resourceCulture);
}
}
///
/// Looks up a localized string similar to Unsupported URI scheme: '{0}'. The URI scheme must be either '{1}' or '{2}'..
///
internal static string ArgumentInvalidHttpUriScheme {
get {
return ResourceManager.GetString("ArgumentInvalidHttpUriScheme", resourceCulture);
}
}
///
/// Looks up a localized string similar to Value must be greater than or equal to {0}..
///
internal static string ArgumentMustBeGreaterThanOrEqualTo {
get {
return ResourceManager.GetString("ArgumentMustBeGreaterThanOrEqualTo", resourceCulture);
}
}
///
/// Looks up a localized string similar to Value must be less than or equal to {0}..
///
internal static string ArgumentMustBeLessThanOrEqualTo {
get {
return ResourceManager.GetString("ArgumentMustBeLessThanOrEqualTo", resourceCulture);
}
}
///
/// Looks up a localized string similar to The argument '{0}' is null or empty..
///
internal static string ArgumentNullOrEmpty {
get {
return ResourceManager.GetString("ArgumentNullOrEmpty", resourceCulture);
}
}
///
/// Looks up a localized string similar to URI must not contain a query component or a fragment identifier..
///
internal static string ArgumentUriHasQueryOrFragment {
get {
return ResourceManager.GetString("ArgumentUriHasQueryOrFragment", resourceCulture);
}
}
///
/// Looks up a localized string similar to The value of argument '{0}' ({1}) is invalid for Enum type '{2}'..
///
internal static string InvalidEnumArgument {
get {
return ResourceManager.GetString("InvalidEnumArgument", resourceCulture);
}
}
}
}
================================================
FILE: src/Common/CommonWebApiResources.resx
================================================
text/microsoft-resx
2.0
System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
Relative URI values are not supported: '{0}'. The URI must be absolute.
Unsupported URI scheme: '{0}'. The URI scheme must be either '{1}' or '{2}'.
Value must be greater than or equal to {0}.
Value must be less than or equal to {0}.
The argument '{0}' is null or empty.
URI must not contain a query component or a fragment identifier.
The value of argument '{0}' ({1}) is invalid for Enum type '{2}'.
================================================
FILE: src/Common/DictionaryExtensions.cs
================================================
// Copyright (c) .NET Foundation. All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
using System.ComponentModel;
using System.Diagnostics.Contracts;
namespace System.Collections.Generic
{
///
/// Extension methods for .
///
[EditorBrowsable(EditorBrowsableState.Never)]
internal static class DictionaryExtensions
{
///
/// Remove entries from dictionary that match the removeCondition.
///
public static void RemoveFromDictionary(this IDictionary dictionary, Func, bool> removeCondition)
{
// Pass the delegate as the state to avoid a delegate and closure
dictionary.RemoveFromDictionary((entry, innerCondition) =>
{
return innerCondition(entry);
},
removeCondition);
}
///
/// Remove entries from dictionary that match the removeCondition.
///
public static void RemoveFromDictionary(this IDictionary dictionary, Func, TState, bool> removeCondition, TState state)
{
Contract.Assert(dictionary != null);
Contract.Assert(removeCondition != null);
// Because it is not possible to delete while enumerating, a copy of the keys must be taken. Use the size of the dictionary as an upper bound
// to avoid creating more than one copy of the keys.
int removeCount = 0;
TKey[] keys = new TKey[dictionary.Count];
foreach (var entry in dictionary)
{
if (removeCondition(entry, state))
{
keys[removeCount] = entry.Key;
removeCount++;
}
}
for (int i = 0; i < removeCount; i++)
{
dictionary.Remove(keys[i]);
}
}
///
/// Gets the value of associated with the specified key or default value if
/// either the key is not present or the value is not of type .
///
/// The type of the value associated with the specified key.
/// The instance where TValue is object.
/// The key whose value to get.
/// When this method returns, the value associated with the specified key, if the key is found; otherwise, the default value for the type of the value parameter.
/// true if key was found, value is non-null, and value is of type ; otherwise false.
public static bool TryGetValue(this IDictionary collection, string key, out T value)
{
Contract.Assert(collection != null);
object valueObj;
if (collection.TryGetValue(key, out valueObj))
{
if (valueObj is T)
{
value = (T)valueObj;
return true;
}
}
value = default(T);
return false;
}
internal static IEnumerable> FindKeysWithPrefix(this IDictionary dictionary, string prefix)
{
Contract.Assert(dictionary != null);
Contract.Assert(prefix != null);
TValue exactMatchValue;
if (dictionary.TryGetValue(prefix, out exactMatchValue))
{
yield return new KeyValuePair(prefix, exactMatchValue);
}
foreach (var entry in dictionary)
{
string key = entry.Key;
if (key.Length <= prefix.Length)
{
continue;
}
if (!key.StartsWith(prefix, StringComparison.OrdinalIgnoreCase))
{
continue;
}
// Everything is prefixed by the empty string
if (prefix.Length == 0)
{
yield return entry;
}
else
{
char charAfterPrefix = key[prefix.Length];
switch (charAfterPrefix)
{
case '[':
case '.':
yield return entry;
break;
}
}
}
}
}
}
================================================
FILE: src/Common/EfficientTypePropertyKey.cs
================================================
// Copyright (c) .NET Foundation. All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
namespace System.Web.Http
{
// When the key is cached, it will be more efficient that a normal tuple, because the hash code call
// is rather expensive particularly for T as Type or T as long string.
internal class EfficientTypePropertyKey : Tuple
{
private int _hashCode;
public EfficientTypePropertyKey(T1 item1, T2 item2)
: base(item1, item2)
{
_hashCode = base.GetHashCode();
}
public override int GetHashCode()
{
return _hashCode;
}
}
}
================================================
FILE: src/Common/Empty.cs
================================================
// Copyright (c) .NET Foundation. All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
namespace System.Collections.Generic
{
///
/// Helper to provide empty instances with minimal allocation.
///
internal static class Empty
{
private static readonly T[] _emptyArray = new T[0];
///
/// Returns a zero length array of type. Only allocates once per distinct type.
///
public static T[] Array
{
get { return _emptyArray; }
}
}
}
================================================
FILE: src/Common/Error.cs
================================================
// Copyright (c) .NET Foundation. All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
using System.Collections.Generic;
using System.ComponentModel;
using System.Diagnostics.CodeAnalysis;
using System.Globalization;
using System.Web.Http.Properties;
namespace System.Web.Http
{
///
/// Utility class for creating and unwrapping instances.
///
internal static class Error
{
private const string HttpScheme = "http";
private const string HttpsScheme = "https";
///
/// Formats the specified resource string using .
///
/// A composite format string.
/// An object array that contains zero or more objects to format.
/// The formatted string.
internal static string Format(string format, params object[] args)
{
return String.Format(CultureInfo.CurrentCulture, format, args);
}
///
/// Creates an with the provided properties.
///
/// A composite format string explaining the reason for the exception.
/// An object array that contains zero or more objects to format.
/// The logged .
internal static ArgumentException Argument(string messageFormat, params object[] messageArgs)
{
return new ArgumentException(Error.Format(messageFormat, messageArgs));
}
///
/// Creates an with the provided properties.
///
/// The name of the parameter that caused the current exception.
/// A composite format string explaining the reason for the exception.
/// An object array that contains zero or more objects to format.
/// The logged .
internal static ArgumentException Argument(string parameterName, string messageFormat, params object[] messageArgs)
{
return new ArgumentException(Error.Format(messageFormat, messageArgs), parameterName);
}
///
/// Creates an with a message saying that the argument must be an "http" or "https" URI.
///
/// The name of the parameter that caused the current exception.
/// The value of the argument that causes this exception.
/// The logged .
internal static ArgumentException ArgumentUriNotHttpOrHttpsScheme(string parameterName, Uri actualValue)
{
return new ArgumentException(Error.Format(CommonWebApiResources.ArgumentInvalidHttpUriScheme, actualValue, HttpScheme, HttpsScheme), parameterName);
}
///
/// Creates an with a message saying that the argument must be an absolute URI.
///
/// The name of the parameter that caused the current exception.
/// The value of the argument that causes this exception.
/// The logged .
internal static ArgumentException ArgumentUriNotAbsolute(string parameterName, Uri actualValue)
{
return new ArgumentException(Error.Format(CommonWebApiResources.ArgumentInvalidAbsoluteUri, actualValue), parameterName);
}
///
/// Creates an with a message saying that the argument must be an absolute URI
/// without a query or fragment identifier and then logs it with .
///
/// The name of the parameter that caused the current exception.
/// The value of the argument that causes this exception.
/// The logged .
internal static ArgumentException ArgumentUriHasQueryOrFragment(string parameterName, Uri actualValue)
{
return new ArgumentException(Error.Format(CommonWebApiResources.ArgumentUriHasQueryOrFragment, actualValue), parameterName);
}
///
/// Creates an with the provided properties.
///
/// The logged .
[SuppressMessage("Microsoft.Usage", "CA2208:InstantiateArgumentExceptionsCorrectly", Justification = "The purpose of this API is to return an error for properties")]
internal static ArgumentNullException PropertyNull()
{
return new ArgumentNullException("value");
}
///
/// Creates an with the provided properties.
///
/// The name of the parameter that caused the current exception.
/// The logged .
internal static ArgumentNullException ArgumentNull(string parameterName)
{
return new ArgumentNullException(parameterName);
}
///
/// Creates an with the provided properties.
///
/// The name of the parameter that caused the current exception.
/// A composite format string explaining the reason for the exception.
/// An object array that contains zero or more objects to format.
/// The logged .
internal static ArgumentNullException ArgumentNull(string parameterName, string messageFormat, params object[] messageArgs)
{
return new ArgumentNullException(parameterName, Error.Format(messageFormat, messageArgs));
}
///
/// Creates an with a default message.
///
/// The name of the parameter that caused the current exception.
/// The logged .
internal static ArgumentException ArgumentNullOrEmpty(string parameterName)
{
return Error.Argument(parameterName, CommonWebApiResources.ArgumentNullOrEmpty, parameterName);
}
///
/// Creates an with the provided properties.
///
/// The name of the parameter that caused the current exception.
/// The value of the argument that causes this exception.
/// A composite format string explaining the reason for the exception.
/// An object array that contains zero or more objects to format.
/// The logged .
internal static ArgumentOutOfRangeException ArgumentOutOfRange(string parameterName, object actualValue, string messageFormat, params object[] messageArgs)
{
return new ArgumentOutOfRangeException(parameterName, actualValue, Error.Format(messageFormat, messageArgs));
}
///
/// Creates an with a message saying that the argument must be greater than or equal to .
///
/// The name of the parameter that caused the current exception.
/// The value of the argument that causes this exception.
/// The minimum size of the argument.
/// The logged .
internal static ArgumentOutOfRangeException ArgumentMustBeGreaterThanOrEqualTo(string parameterName, object actualValue, object minValue)
{
return new ArgumentOutOfRangeException(parameterName, actualValue, Error.Format(CommonWebApiResources.ArgumentMustBeGreaterThanOrEqualTo, minValue));
}
///
/// Creates an with a message saying that the argument must be less than or equal to .
///
/// The name of the parameter that caused the current exception.
/// The value of the argument that causes this exception.
/// The maximum size of the argument.
/// The logged .
internal static ArgumentOutOfRangeException ArgumentMustBeLessThanOrEqualTo(string parameterName, object actualValue, object maxValue)
{
return new ArgumentOutOfRangeException(parameterName, actualValue, Error.Format(CommonWebApiResources.ArgumentMustBeLessThanOrEqualTo, maxValue));
}
///
/// Creates an with a message saying that the key was not found.
///
/// The logged .
internal static KeyNotFoundException KeyNotFound()
{
return new KeyNotFoundException();
}
///
/// Creates an with a message saying that the key was not found.
///
/// A composite format string explaining the reason for the exception.
/// An object array that contains zero or more objects to format.
/// The logged .
internal static KeyNotFoundException KeyNotFound(string messageFormat, params object[] messageArgs)
{
return new KeyNotFoundException(Error.Format(messageFormat, messageArgs));
}
///
/// Creates an initialized according to guidelines.
///
/// A composite format string explaining the reason for the exception.
/// An object array that contains zero or more objects to format.
/// The logged .
internal static ObjectDisposedException ObjectDisposed(string messageFormat, params object[] messageArgs)
{
// Pass in null, not disposedObject.GetType().FullName as per the above guideline
return new ObjectDisposedException(null, Error.Format(messageFormat, messageArgs));
}
///
/// Creates an initialized with the provided parameters.
///
/// The logged .
internal static OperationCanceledException OperationCanceled()
{
return new OperationCanceledException();
}
///
/// Creates an initialized with the provided parameters.
///
/// A composite format string explaining the reason for the exception.
/// An object array that contains zero or more objects to format.
/// The logged .
internal static OperationCanceledException OperationCanceled(string messageFormat, params object[] messageArgs)
{
return new OperationCanceledException(Error.Format(messageFormat, messageArgs));
}
///
/// Creates an for an invalid enum argument.
///
/// The name of the parameter that caused the current exception.
/// The value of the argument that failed.
/// A that represents the enumeration class with the valid values.
/// The logged .
internal static ArgumentException InvalidEnumArgument(string parameterName, int invalidValue, Type enumClass)
{
return new InvalidEnumArgumentException(parameterName, invalidValue, enumClass);
}
///
/// Creates an .
///
/// A composite format string explaining the reason for the exception.
/// An object array that contains zero or more objects to format.
/// The logged .
internal static InvalidOperationException InvalidOperation(string messageFormat, params object[] messageArgs)
{
return new InvalidOperationException(Error.Format(messageFormat, messageArgs));
}
///
/// Creates an .
///
/// Inner exception
/// A composite format string explaining the reason for the exception.
/// An object array that contains zero or more objects to format.
/// The logged .
internal static InvalidOperationException InvalidOperation(Exception innerException, string messageFormat, params object[] messageArgs)
{
return new InvalidOperationException(Error.Format(messageFormat, messageArgs), innerException);
}
///
/// Creates an .
///
/// A composite format string explaining the reason for the exception.
/// An object array that contains zero or more objects to format.
/// The logged .
internal static NotSupportedException NotSupported(string messageFormat, params object[] messageArgs)
{
return new NotSupportedException(Error.Format(messageFormat, messageArgs));
}
#if NETSTANDARD1_3 // InvalidEnumArgumentException not available in netstandard1.3.
internal class InvalidEnumArgumentException : ArgumentException
{
public InvalidEnumArgumentException() : this(null)
{ }
public InvalidEnumArgumentException(string message) : base(message)
{ }
public InvalidEnumArgumentException(string message, Exception innerException) : base(message, innerException)
{ }
public InvalidEnumArgumentException(string argumentName, int invalidValue, Type enumClass) : base(
Error.Format(CommonWebApiResources.InvalidEnumArgument, argumentName, invalidValue, enumClass.Name),
argumentName)
{ }
}
#endif
}
}
================================================
FILE: src/Common/HashCodeCombiner.cs
================================================
// Copyright (c) .NET Foundation. All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
using System.Collections;
namespace Microsoft.Internal.Web.Utils
{
internal class HashCodeCombiner
{
private long _combinedHash64 = 0x1505L;
public int CombinedHash
{
get { return _combinedHash64.GetHashCode(); }
}
public HashCodeCombiner Add(IEnumerable e)
{
if (e == null)
{
Add(0);
}
else
{
int count = 0;
foreach (object o in e)
{
Add(o);
count++;
}
Add(count);
}
return this;
}
public HashCodeCombiner Add(int i)
{
_combinedHash64 = ((_combinedHash64 << 5) + _combinedHash64) ^ i;
return this;
}
public HashCodeCombiner Add(object o)
{
int hashCode = (o != null) ? o.GetHashCode() : 0;
Add(hashCode);
return this;
}
public static HashCodeCombiner Start()
{
return new HashCodeCombiner();
}
}
}
================================================
FILE: src/Common/HttpMethodHelper.cs
================================================
// Copyright (c) .NET Foundation. All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
using System.Net.Http;
namespace System.Web.Http
{
///
/// Various helper methods for the static members of .
///
internal static class HttpMethodHelper
{
///
/// Gets the static instance for any given HTTP method name.
///
/// The HTTP request method.
/// An existing static or a new instance if the method was not found.
internal static HttpMethod GetHttpMethod(string method)
{
if (String.IsNullOrEmpty(method))
{
return null;
}
if (String.Equals("GET", method, StringComparison.OrdinalIgnoreCase))
{
return HttpMethod.Get;
}
if (String.Equals("POST", method, StringComparison.OrdinalIgnoreCase))
{
return HttpMethod.Post;
}
if (String.Equals("PUT", method, StringComparison.OrdinalIgnoreCase))
{
return HttpMethod.Put;
}
if (String.Equals("DELETE", method, StringComparison.OrdinalIgnoreCase))
{
return HttpMethod.Delete;
}
if (String.Equals("HEAD", method, StringComparison.OrdinalIgnoreCase))
{
return HttpMethod.Head;
}
if (String.Equals("OPTIONS", method, StringComparison.OrdinalIgnoreCase))
{
return HttpMethod.Options;
}
if (String.Equals("TRACE", method, StringComparison.OrdinalIgnoreCase))
{
return HttpMethod.Trace;
}
return new HttpMethod(method);
}
}
}
================================================
FILE: src/Common/ListWrapperCollection.cs
================================================
// Copyright (c) .NET Foundation. All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
using System.Collections.Generic;
namespace System.Collections.ObjectModel
{
///
/// A class that inherits from Collection of T but also exposes its underlying data as List of T for performance.
///
internal sealed class ListWrapperCollection : Collection
{
private readonly List _items;
internal ListWrapperCollection()
: this(new List())
{
}
internal ListWrapperCollection(List list)
: base(list)
{
_items = list;
}
internal List ItemsList
{
get { return _items; }
}
}
}
================================================
FILE: src/Common/NonOwnedStream.cs
================================================
// Copyright (c) .NET Foundation. All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
using System.Diagnostics.CodeAnalysis;
using System.IO;
using System.Threading;
using System.Threading.Tasks;
namespace System.Web.Http
{
/// Represents a stream that replaces another stream to prevent actually closing that stream.
///
/// This class uses the Decorator [GoF] pattern; it forwards all calls except those related to Dispose and Close.
///
internal class NonOwnedStream : Stream
{
protected NonOwnedStream()
{
}
public NonOwnedStream(Stream innerStream)
{
if (innerStream == null)
{
throw new ArgumentNullException("innerStream");
}
InnerStream = innerStream;
}
protected Stream InnerStream
{
get;
set;
}
protected bool IsDisposed
{
get;
private set;
}
public override bool CanRead
{
get
{
// Per documentation, CanRead should return false rather than throw when the stream is closed.
if (IsDisposed)
{
return false;
}
return InnerStream.CanRead;
}
}
public override bool CanSeek
{
get
{
// Per documentation, CanSeek should return false rather than throw when the stream is closed.
if (IsDisposed)
{
return false;
}
return InnerStream.CanSeek;
}
}
public override bool CanTimeout
{
get
{
// Per documentation, this value apparently is a constant for a particular implementation class.
// Throwing when disposed appears inappropriate here.
return InnerStream.CanTimeout;
}
}
public override bool CanWrite
{
get
{
// Per documentation, CanWrite should return false rather than throw when the stream is closed.
if (IsDisposed)
{
return false;
}
return InnerStream.CanWrite;
}
}
public override long Length
{
get
{
// Per documentation, this property throws ObjectDisposedException if the stream is closed.
ThrowIfDisposed();
return InnerStream.Length;
}
}
public override long Position
{
get
{
// Per documentation, this property throws ObjectDisposedException if the stream is closed.
ThrowIfDisposed();
return InnerStream.Position;
}
set
{
// Per documentation, this property throws ObjectDisposedException if the stream is closed.
ThrowIfDisposed();
InnerStream.Position = value;
}
}
public override int ReadTimeout
{
get
{
// Documentation does not state the behavior when the stream is closed. The NetworkStream
// implementation suggests the contract should be to throw ObjectDisposedException when the stream is
// closed.
ThrowIfDisposed();
return InnerStream.ReadTimeout;
}
set
{
// Documentation does not state the behavior when the stream is closed. The NetworkStream
// implementation suggests the contract should be to throw ObjectDisposedException when the stream is
// closed.
ThrowIfDisposed();
InnerStream.ReadTimeout = value;
}
}
public override int WriteTimeout
{
get
{
// Documentation does not state the behavior when the stream is closed. The NetworkStream
// implementation suggests the contract should be to throw ObjectDisposedException when the stream is
// closed.
ThrowIfDisposed();
return InnerStream.WriteTimeout;
}
set
{
// Documentation does not state the behavior when the stream is closed. The NetworkStream
// implementation suggests the contract should be to throw ObjectDisposedException when the stream is
// closed.
ThrowIfDisposed();
InnerStream.WriteTimeout = value;
}
}
public override IAsyncResult BeginRead(byte[] buffer, int offset, int count, AsyncCallback callback, object state)
{
ThrowIfDisposed();
return InnerStream.BeginRead(buffer, offset, count, callback, state);
}
public override IAsyncResult BeginWrite(byte[] buffer, int offset, int count, AsyncCallback callback, object state)
{
ThrowIfDisposed();
return InnerStream.BeginWrite(buffer, offset, count, callback, state);
}
public override void Close()
{
// base.Close() calls Dispose(true) and GC.SuppressFinalize(this), which is exactly what we want.
// Note that we do NOT call _innerStream.Close here, as that would actually close the original source
// stream, which is the one thing this class is designed to prevent.
base.Close();
}
public override Task CopyToAsync(Stream destination, int bufferSize, CancellationToken cancellationToken)
{
ThrowIfDisposed();
return InnerStream.CopyToAsync(destination, bufferSize, cancellationToken);
}
// Not overriding MarshalByRefObj.CreateObjRef.
// Not overriding Stream.CreateWaitHandle.
[SuppressMessage(
"Microsoft.Usage",
"CA2215:Dispose methods should call base class dispose",
Justification = "We're intentionally preventing a double dispose here.")]
protected override void Dispose(bool disposing)
{
// Note that we do NOT call _innerStream.Dispose or Close here, as that would actually close the original
// source stream, which is the one thing this class is designed to prevent.
if (!IsDisposed)
{
base.Dispose(disposing);
IsDisposed = true;
}
}
public override int EndRead(IAsyncResult asyncResult)
{
ThrowIfDisposed();
return InnerStream.EndRead(asyncResult);
}
public override void EndWrite(IAsyncResult asyncResult)
{
ThrowIfDisposed();
InnerStream.EndWrite(asyncResult);
}
// Not overriding Object.Equals.
public override void Flush()
{
ThrowIfDisposed();
InnerStream.Flush();
}
public override Task FlushAsync(CancellationToken cancellationToken)
{
ThrowIfDisposed();
return InnerStream.FlushAsync(cancellationToken);
}
// Not overriding Object.GetHashCode.
// Not overriding MarshalByRefObj.InitializeLifetimeService.
// Per documentation, don't override Stream.ObjectInvariant.
public override int Read(byte[] buffer, int offset, int count)
{
ThrowIfDisposed();
return InnerStream.Read(buffer, offset, count);
}
public override Task ReadAsync(byte[] buffer, int offset, int count, CancellationToken cancellationToken)
{
ThrowIfDisposed();
return InnerStream.ReadAsync(buffer, offset, count, cancellationToken);
}
public override int ReadByte()
{
ThrowIfDisposed();
return InnerStream.ReadByte();
}
public override long Seek(long offset, SeekOrigin origin)
{
ThrowIfDisposed();
return InnerStream.Seek(offset, origin);
}
public override void SetLength(long value)
{
ThrowIfDisposed();
InnerStream.SetLength(value);
}
// Not overriding Object.ToString().
public override void Write(byte[] buffer, int offset, int count)
{
ThrowIfDisposed();
InnerStream.Write(buffer, offset, count);
}
public override Task WriteAsync(byte[] buffer, int offset, int count, CancellationToken cancellationToken)
{
ThrowIfDisposed();
return InnerStream.WriteAsync(buffer, offset, count, cancellationToken);
}
public override void WriteByte(byte value)
{
ThrowIfDisposed();
InnerStream.WriteByte(value);
}
protected void ThrowIfDisposed()
{
if (IsDisposed)
{
throw new ObjectDisposedException(null);
}
}
}
}
================================================
FILE: src/Common/PathHelpers.cs
================================================
// Copyright (c) .NET Foundation. All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
using System.Diagnostics.Contracts;
namespace System.Web
{
///
/// Helpers for working with IO paths.
///
internal static class PathHelpers
{
///
/// Returns whether the path has the specified file extension.
///
public static bool EndsWithExtension(string path, string extension)
{
Contract.Assert(path != null);
Contract.Assert(extension != null && extension.Length > 0);
if (path.EndsWith(extension, StringComparison.OrdinalIgnoreCase))
{
int extensionLength = extension.Length;
int pathLength = path.Length;
return (pathLength > extensionLength && path[pathLength - extensionLength - 1] == '.');
}
return false;
}
}
}
================================================
FILE: src/Common/PrefixContainer.cs
================================================
// Copyright (c) .NET Foundation. All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
using System.Collections.Generic;
namespace System.Web
{
///
/// This is a container for prefix values. It normalizes all the values into dotted-form and then stores
/// them in a sorted array. All queries for prefixes are also normalized to dotted-form, and searches
/// for ContainsPrefix are done with a binary search.
///
internal class PrefixContainer
{
private readonly ICollection _originalValues;
private readonly string[] _sortedValues;
internal PrefixContainer(ICollection values)
{
if (values == null)
{
throw new ArgumentNullException("values");
}
_originalValues = values;
_sortedValues = _originalValues.ToArrayWithoutNulls();
Array.Sort(_sortedValues, StringComparer.OrdinalIgnoreCase);
}
internal bool ContainsPrefix(string prefix)
{
if (prefix == null)
{
throw new ArgumentNullException("prefix");
}
if (prefix.Length == 0)
{
return _sortedValues.Length > 0; // only match empty string when we have some value
}
PrefixComparer prefixComparer = new PrefixComparer(prefix);
bool containsPrefix = Array.BinarySearch(_sortedValues, prefix, prefixComparer) > -1;
if (!containsPrefix)
{
// If there's something in the search boundary that starts with the same name
// as the collection prefix that we're trying to find, the binary search would actually fail.
// For example, let's say we have foo.a, foo.bE and foo.b[0]. Calling Array.BinarySearch
// will fail to find foo.b because it will land on foo.bE, then look at foo.a and finally
// failing to find the prefix which is actually present in the container (foo.b[0]).
// Here we're doing another pass looking specifically for collection prefix.
containsPrefix = Array.BinarySearch(_sortedValues, prefix + "[", prefixComparer) > -1;
}
return containsPrefix;
}
// Given "foo.bar", "foo.hello", "something.other", foo[abc].baz and asking for prefix "foo" will return:
// - "bar"/"foo.bar"
// - "hello"/"foo.hello"
// - "abc"/"foo[abc]"
internal IDictionary GetKeysFromPrefix(string prefix)
{
IDictionary result = new Dictionary(StringComparer.OrdinalIgnoreCase);
foreach (var entry in _originalValues)
{
if (entry != null)
{
if (entry.Length == prefix.Length)
{
// No key in this entry
continue;
}
if (prefix.Length == 0)
{
GetKeyFromEmptyPrefix(entry, result);
}
else if (entry.StartsWith(prefix, StringComparison.OrdinalIgnoreCase))
{
GetKeyFromNonEmptyPrefix(prefix, entry, result);
}
}
}
return result;
}
private static void GetKeyFromEmptyPrefix(string entry, IDictionary results)
{
string key;
int dotPosition = entry.IndexOf('.');
int bracketPosition = entry.IndexOf('[');
int delimiterPosition = -1;
if (dotPosition == -1)
{
if (bracketPosition != -1)
{
delimiterPosition = bracketPosition;
}
}
else
{
if (bracketPosition == -1)
{
delimiterPosition = dotPosition;
}
else
{
delimiterPosition = Math.Min(dotPosition, bracketPosition);
}
}
key = delimiterPosition == -1 ? entry : entry.Substring(0, delimiterPosition);
results[key] = key;
}
private static void GetKeyFromNonEmptyPrefix(string prefix, string entry, IDictionary results)
{
string key = null;
string fullName = null;
int keyPosition = prefix.Length + 1;
switch (entry[prefix.Length])
{
case '.':
int dotPosition = entry.IndexOf('.', keyPosition);
if (dotPosition == -1)
{
dotPosition = entry.Length;
}
key = entry.Substring(keyPosition, dotPosition - keyPosition);
fullName = entry.Substring(0, dotPosition);
break;
case '[':
int bracketPosition = entry.IndexOf(']', keyPosition);
if (bracketPosition == -1)
{
// Malformed for dictionary
return;
}
key = entry.Substring(keyPosition, bracketPosition - keyPosition);
fullName = entry.Substring(0, bracketPosition + 1);
break;
default:
return;
}
if (!results.ContainsKey(key))
{
results.Add(key, fullName);
}
}
internal static bool IsPrefixMatch(string prefix, string testString)
{
if (testString == null)
{
return false;
}
if (prefix.Length == 0)
{
return true; // shortcut - non-null testString matches empty prefix
}
if (prefix.Length > testString.Length)
{
return false; // not long enough
}
if (!testString.StartsWith(prefix, StringComparison.OrdinalIgnoreCase))
{
return false; // prefix doesn't match
}
if (testString.Length == prefix.Length)
{
return true; // exact match
}
// invariant: testString.Length > prefix.Length
switch (testString[prefix.Length])
{
case '.':
case '[':
return true; // known delimiters
default:
return false; // not known delimiter
}
}
private class PrefixComparer : IComparer
{
private string _prefix;
public PrefixComparer(string prefix)
{
_prefix = prefix;
}
public int Compare(string x, string y)
{
string testString = Object.ReferenceEquals(x, _prefix) ? y : x;
if (IsPrefixMatch(_prefix, testString))
{
return 0;
}
return StringComparer.OrdinalIgnoreCase.Compare(x, y);
}
}
}
}
================================================
FILE: src/Common/PropertyHelper.cs
================================================
// Copyright (c) .NET Foundation. All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.Diagnostics.CodeAnalysis;
using System.Diagnostics.Contracts;
using System.Linq;
using System.Reflection;
#if ASPNETWEBAPI
namespace System.Web.Http.Internal
#else
namespace System.Web.WebPages
#endif
{
internal class PropertyHelper
{
private static ConcurrentDictionary _reflectionCache = new ConcurrentDictionary();
private Func