Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / xsp / System / Extensions / Script / Services / PageClientProxyGenerator.cs / 1305376 / PageClientProxyGenerator.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.Script.Services { using System.Web; using System.Web.UI; internal class PageClientProxyGenerator : ClientProxyGenerator { private string _path; internal PageClientProxyGenerator(IPage page, bool debug) : this(VirtualPathUtility.MakeRelative(page.Request.Path, page.Request.FilePath), debug) { // Dev10 Bug 597146: Use VirtualPathUtility to build a relative path from the path to the file. // Previously just Page.Request.FilePath was used, which was for example, /app/foo/page.aspx, // but this breaks with cookieless sessions since the url is /app/foo/(sessionid)/page.aspx. // We need to make a relative path from page.Request.Path (e.g. /app/foo) to page.Request.FilePath // (e.g. /app/foo/page.aspx) rather than just strip off 'page.aspx' with Path.GetFileName, because // the url may include PathInfo, such as "/app/foo/page.aspx/pathinfo1/pathinfo2", and in that case // we need the path to be ../../page.aspx } internal PageClientProxyGenerator(string path, bool debug) { _path = path; _debugMode = debug; } internal static string GetClientProxyScript(HttpContext context, IPage page, bool debug) { // Do nothing during unit tests which have no context or page if (context == null || page == null) return null; WebServiceData webServiceData = WebServiceData.GetWebServiceData(context, page.AppRelativeVirtualPath, false /*failIfNoData*/, true /*pageMethods */); if (webServiceData == null) return null; PageClientProxyGenerator proxyGenerator = new PageClientProxyGenerator(page, debug); return proxyGenerator.GetClientProxyScript(webServiceData); } protected override void GenerateTypeDeclaration(WebServiceData webServiceData, bool genClass) { if (genClass) { _builder.Append("PageMethods.prototype = "); } else { _builder.Append("var PageMethods = "); } } protected override string GetProxyTypeName(WebServiceData data) { return "PageMethods"; } protected override string GetProxyPath() { return _path; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.Script.Services { using System.Web; using System.Web.UI; internal class PageClientProxyGenerator : ClientProxyGenerator { private string _path; internal PageClientProxyGenerator(IPage page, bool debug) : this(VirtualPathUtility.MakeRelative(page.Request.Path, page.Request.FilePath), debug) { // Dev10 Bug 597146: Use VirtualPathUtility to build a relative path from the path to the file. // Previously just Page.Request.FilePath was used, which was for example, /app/foo/page.aspx, // but this breaks with cookieless sessions since the url is /app/foo/(sessionid)/page.aspx. // We need to make a relative path from page.Request.Path (e.g. /app/foo) to page.Request.FilePath // (e.g. /app/foo/page.aspx) rather than just strip off 'page.aspx' with Path.GetFileName, because // the url may include PathInfo, such as "/app/foo/page.aspx/pathinfo1/pathinfo2", and in that case // we need the path to be ../../page.aspx } internal PageClientProxyGenerator(string path, bool debug) { _path = path; _debugMode = debug; } internal static string GetClientProxyScript(HttpContext context, IPage page, bool debug) { // Do nothing during unit tests which have no context or page if (context == null || page == null) return null; WebServiceData webServiceData = WebServiceData.GetWebServiceData(context, page.AppRelativeVirtualPath, false /*failIfNoData*/, true /*pageMethods */); if (webServiceData == null) return null; PageClientProxyGenerator proxyGenerator = new PageClientProxyGenerator(page, debug); return proxyGenerator.GetClientProxyScript(webServiceData); } protected override void GenerateTypeDeclaration(WebServiceData webServiceData, bool genClass) { if (genClass) { _builder.Append("PageMethods.prototype = "); } else { _builder.Append("var PageMethods = "); } } protected override string GetProxyTypeName(WebServiceData data) { return "PageMethods"; } protected override string GetProxyPath() { return _path; } } } // 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
- HttpBufferlessInputStream.cs
- OSFeature.cs
- MetadataPropertyCollection.cs
- ClientRolePrincipal.cs
- XamlToRtfWriter.cs
- WebPartConnectionsConfigureVerb.cs
- HttpBrowserCapabilitiesWrapper.cs
- PlatformNotSupportedException.cs
- CookieProtection.cs
- XPathPatternParser.cs
- ConfigurationStrings.cs
- CompilerResults.cs
- BrowserCapabilitiesCodeGenerator.cs
- ResolvedKeyFrameEntry.cs
- InfoCardConstants.cs
- HtmlLabelAdapter.cs
- TreePrinter.cs
- HierarchicalDataTemplate.cs
- SiteMapDataSource.cs
- Directory.cs
- XmlMtomWriter.cs
- nulltextnavigator.cs
- SqlTrackingQuery.cs
- HostingEnvironment.cs
- DoubleStorage.cs
- ToolStripInSituService.cs
- StringFreezingAttribute.cs
- BufferedMessageData.cs
- QilFunction.cs
- SecurityDescriptor.cs
- BaseCodeDomTreeGenerator.cs
- EventlogProvider.cs
- ComponentEvent.cs
- RestHandler.cs
- DispatchOperation.cs
- DbConnectionPoolGroup.cs
- ProvidePropertyAttribute.cs
- InfiniteTimeSpanConverter.cs
- AttachedPropertyBrowsableForChildrenAttribute.cs
- GroupItemAutomationPeer.cs
- TypeUtil.cs
- SqlMethodAttribute.cs
- IgnorePropertiesAttribute.cs
- RangeBase.cs
- OdbcException.cs
- SizeAnimationUsingKeyFrames.cs
- DataGridViewSortCompareEventArgs.cs
- DbConnectionPoolGroupProviderInfo.cs
- Token.cs
- XPathPatternParser.cs
- ConnectionManagementElementCollection.cs
- DebugTracing.cs
- TextDecorationCollectionConverter.cs
- DataControlFieldHeaderCell.cs
- RoleBoolean.cs
- CodeDomSerializationProvider.cs
- TextClipboardData.cs
- MarkupExtensionReturnTypeAttribute.cs
- ProxyHwnd.cs
- IteratorFilter.cs
- UInt64.cs
- XmlWhitespace.cs
- WindowsToolbarItemAsMenuItem.cs
- ListenDesigner.cs
- HierarchicalDataSourceDesigner.cs
- DefaultAsyncDataDispatcher.cs
- WebPartTransformerCollection.cs
- TraceRecord.cs
- WindowsTokenRoleProvider.cs
- CapabilitiesPattern.cs
- URLIdentityPermission.cs
- UnhandledExceptionEventArgs.cs
- entityreference_tresulttype.cs
- ScrollChangedEventArgs.cs
- COM2PictureConverter.cs
- OdbcConnectionStringbuilder.cs
- ExtensionWindowHeader.cs
- ConsoleCancelEventArgs.cs
- Camera.cs
- WinEventHandler.cs
- SdlChannelSink.cs
- CompilerTypeWithParams.cs
- ScaleTransform.cs
- WebPartEditorApplyVerb.cs
- HtmlWindow.cs
- _NegoStream.cs
- AspNetHostingPermission.cs
- Signature.cs
- StateBag.cs
- HMACSHA384.cs
- Animatable.cs
- Operator.cs
- SystemIcons.cs
- DataSourceConverter.cs
- CompoundFileStorageReference.cs
- UITypeEditor.cs
- Win32NamedPipes.cs
- SqlDuplicator.cs
- URLString.cs
- DiscreteKeyFrames.cs