Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / xsp / System / Extensions / Script / Services / RestHandlerFactory.cs / 1305376 / RestHandlerFactory.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.Script.Services { internal class RestHandlerFactory : IHttpHandlerFactory { internal const string ClientProxyRequestPathInfo = "/js"; internal const string ClientDebugProxyRequestPathInfo = "/jsdebug"; public virtual IHttpHandler GetHandler(HttpContext context, string requestType, string url, string pathTranslated) { if (context == null) { throw new ArgumentNullException("context"); } if (IsClientProxyRequest(context.Request.PathInfo)) { // It's a request for client side proxies return new RestClientProxyHandler(); } else { // The request is an actual call to a server method return RestHandler.CreateHandler(context); } } public virtual void ReleaseHandler(IHttpHandler handler) { } // Detects if this is a request we want to intercept, i.e. invocation or proxy request internal static bool IsRestRequest(HttpContext context) { return IsRestMethodCall(context.Request) || IsClientProxyRequest(context.Request.PathInfo); } // Detects if this is a method invocation, i.e. webservice call or page method call internal static bool IsRestMethodCall(HttpRequest request) { return !String.IsNullOrEmpty(request.PathInfo) && (request.ContentType.StartsWith("application/json;", StringComparison.OrdinalIgnoreCase) || string.Equals(request.ContentType, "application/json", StringComparison.OrdinalIgnoreCase)); } internal static bool IsClientProxyDebugRequest(string pathInfo) { return string.Equals(pathInfo, ClientDebugProxyRequestPathInfo, StringComparison.OrdinalIgnoreCase); } internal static bool IsClientProxyRequest(string pathInfo) { return (string.Equals(pathInfo, ClientProxyRequestPathInfo, StringComparison.OrdinalIgnoreCase) || IsClientProxyDebugRequest(pathInfo)); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.Script.Services { internal class RestHandlerFactory : IHttpHandlerFactory { internal const string ClientProxyRequestPathInfo = "/js"; internal const string ClientDebugProxyRequestPathInfo = "/jsdebug"; public virtual IHttpHandler GetHandler(HttpContext context, string requestType, string url, string pathTranslated) { if (context == null) { throw new ArgumentNullException("context"); } if (IsClientProxyRequest(context.Request.PathInfo)) { // It's a request for client side proxies return new RestClientProxyHandler(); } else { // The request is an actual call to a server method return RestHandler.CreateHandler(context); } } public virtual void ReleaseHandler(IHttpHandler handler) { } // Detects if this is a request we want to intercept, i.e. invocation or proxy request internal static bool IsRestRequest(HttpContext context) { return IsRestMethodCall(context.Request) || IsClientProxyRequest(context.Request.PathInfo); } // Detects if this is a method invocation, i.e. webservice call or page method call internal static bool IsRestMethodCall(HttpRequest request) { return !String.IsNullOrEmpty(request.PathInfo) && (request.ContentType.StartsWith("application/json;", StringComparison.OrdinalIgnoreCase) || string.Equals(request.ContentType, "application/json", StringComparison.OrdinalIgnoreCase)); } internal static bool IsClientProxyDebugRequest(string pathInfo) { return string.Equals(pathInfo, ClientDebugProxyRequestPathInfo, StringComparison.OrdinalIgnoreCase); } internal static bool IsClientProxyRequest(string pathInfo) { return (string.Equals(pathInfo, ClientProxyRequestPathInfo, StringComparison.OrdinalIgnoreCase) || IsClientProxyDebugRequest(pathInfo)); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- Cursors.cs
- FrameworkContentElementAutomationPeer.cs
- DmlSqlGenerator.cs
- PriorityRange.cs
- GridViewColumnHeader.cs
- TypeUtils.cs
- MaterialGroup.cs
- TerminatorSinks.cs
- StringWriter.cs
- Predicate.cs
- HWStack.cs
- ExternalCalls.cs
- HttpCookiesSection.cs
- DataService.cs
- ScriptResourceAttribute.cs
- HexParser.cs
- WindowsAuthenticationModule.cs
- IListConverters.cs
- MultiSelectRootGridEntry.cs
- PageFunction.cs
- CodeCatchClauseCollection.cs
- SqlDesignerDataSourceView.cs
- RegexReplacement.cs
- FacetValueContainer.cs
- HttpPostedFile.cs
- RijndaelManaged.cs
- EntityContainerRelationshipSet.cs
- SslStreamSecurityBindingElement.cs
- SmtpReplyReaderFactory.cs
- ProxyGenerationError.cs
- DecimalConverter.cs
- ExtensionDataObject.cs
- TagPrefixInfo.cs
- XmlNavigatorFilter.cs
- SafeHandle.cs
- FusionWrap.cs
- ButtonFieldBase.cs
- Timer.cs
- SrgsGrammarCompiler.cs
- CellCreator.cs
- XmlToDatasetMap.cs
- TreeNodeStyleCollection.cs
- SortQuery.cs
- PackageProperties.cs
- MarkupWriter.cs
- WeakRefEnumerator.cs
- FormViewInsertEventArgs.cs
- basenumberconverter.cs
- PLINQETWProvider.cs
- SplitterPanel.cs
- PlatformNotSupportedException.cs
- RelatedEnd.cs
- LinearGradientBrush.cs
- ErrorWrapper.cs
- FixedFindEngine.cs
- BulletChrome.cs
- TypeLibConverter.cs
- Char.cs
- propertyentry.cs
- FontSourceCollection.cs
- util.cs
- RootNamespaceAttribute.cs
- SqlDataSourceEnumerator.cs
- TypeTypeConverter.cs
- HandlerFactoryWrapper.cs
- FacetDescriptionElement.cs
- WinEventHandler.cs
- UpdateCommand.cs
- CodeFieldReferenceExpression.cs
- PropertyInformation.cs
- WindowsListView.cs
- SiteOfOriginPart.cs
- SqlRowUpdatedEvent.cs
- PropertyContainer.cs
- RowVisual.cs
- HashAlgorithm.cs
- TreeViewImageIndexConverter.cs
- SQLString.cs
- InputReport.cs
- NumberFunctions.cs
- StrongNameKeyPair.cs
- GeneralTransformGroup.cs
- SimpleBitVector32.cs
- GeometryGroup.cs
- CustomAttributeBuilder.cs
- ObjectDataProvider.cs
- Itemizer.cs
- ByteConverter.cs
- TextProperties.cs
- UnsafeNativeMethods.cs
- CodeSubDirectory.cs
- TableLayoutRowStyleCollection.cs
- CodeGotoStatement.cs
- Schedule.cs
- WindowHideOrCloseTracker.cs
- dataprotectionpermissionattribute.cs
- ApplicationServicesHostFactory.cs
- ToggleButtonAutomationPeer.cs
- DynamicDataExtensions.cs
- _NetRes.cs