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
- DocumentsTrace.cs
- ChannelSinkStacks.cs
- ThreadSafeList.cs
- ThemeableAttribute.cs
- ExpressionConverter.cs
- MenuItemCollection.cs
- GPRECT.cs
- QueueProcessor.cs
- CellParaClient.cs
- Attributes.cs
- WebResourceUtil.cs
- XsltSettings.cs
- HistoryEventArgs.cs
- GridViewColumnHeaderAutomationPeer.cs
- PiiTraceSource.cs
- ConnectorMovedEventArgs.cs
- PageThemeParser.cs
- DynamicILGenerator.cs
- MulticastDelegate.cs
- CompositeControl.cs
- ModelPropertyImpl.cs
- CachedFontFamily.cs
- DocumentOrderQuery.cs
- StyleSelector.cs
- __Error.cs
- SerialPort.cs
- ButtonFieldBase.cs
- WebPartRestoreVerb.cs
- ConversionHelper.cs
- Claim.cs
- HitTestParameters3D.cs
- CommentEmitter.cs
- BaseValidator.cs
- TextDecorationCollection.cs
- typedescriptorpermissionattribute.cs
- WebPartConnectionsConfigureVerb.cs
- LicenseContext.cs
- NaturalLanguageHyphenator.cs
- CompoundFileReference.cs
- AstNode.cs
- FormatException.cs
- RegisteredArrayDeclaration.cs
- Stopwatch.cs
- xsdvalidator.cs
- QueryExtender.cs
- SqlCrossApplyToCrossJoin.cs
- NavigationPropertyEmitter.cs
- PersistChildrenAttribute.cs
- ToolStripGrip.cs
- StylusPointDescription.cs
- DocumentApplicationJournalEntry.cs
- GenericEnumConverter.cs
- SerialPinChanges.cs
- ChainOfDependencies.cs
- LinqDataSourceDisposeEventArgs.cs
- FormattedTextSymbols.cs
- ExceptionCollection.cs
- AsyncPostBackErrorEventArgs.cs
- HelpKeywordAttribute.cs
- SafeRightsManagementEnvironmentHandle.cs
- CompiledRegexRunner.cs
- SharedTcpTransportManager.cs
- StandardCommandToolStripMenuItem.cs
- Vertex.cs
- APCustomTypeDescriptor.cs
- Aggregates.cs
- WrappedKeySecurityTokenParameters.cs
- CompatibleIComparer.cs
- CodeDOMProvider.cs
- NativeMethods.cs
- TypedTableBaseExtensions.cs
- FormatConvertedBitmap.cs
- SchemaHelper.cs
- ConfigXmlAttribute.cs
- XmlSchemaAttribute.cs
- OracleBFile.cs
- InputScope.cs
- RemoteArgument.cs
- DispatcherExceptionFilterEventArgs.cs
- _IPv4Address.cs
- Camera.cs
- SiteMapPathDesigner.cs
- TemplatedWizardStep.cs
- BuildManager.cs
- DrawListViewItemEventArgs.cs
- ConstrainedGroup.cs
- Selection.cs
- Types.cs
- StyleSheetRefUrlEditor.cs
- Grant.cs
- xmlsaver.cs
- EncodingDataItem.cs
- WindowsGraphics2.cs
- indexingfiltermarshaler.cs
- SelectionChangedEventArgs.cs
- Decorator.cs
- D3DImage.cs
- ColumnWidthChangingEvent.cs
- ExpressionPrinter.cs
- MenuEventArgs.cs