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
- TemplateInstanceAttribute.cs
- SBCSCodePageEncoding.cs
- PropertiesTab.cs
- SchemaElementLookUpTable.cs
- FileDialog_Vista.cs
- TripleDESCryptoServiceProvider.cs
- StateWorkerRequest.cs
- ClientRolePrincipal.cs
- MissingFieldException.cs
- SectionXmlInfo.cs
- ICollection.cs
- SecondaryViewProvider.cs
- FormViewAutoFormat.cs
- SqlDataReader.cs
- ThemeConfigurationDialog.cs
- EncoderNLS.cs
- WinEventWrap.cs
- VisualBasicHelper.cs
- SoapRpcServiceAttribute.cs
- DataPagerFieldItem.cs
- ProfileGroupSettingsCollection.cs
- HtmlElementCollection.cs
- WebDescriptionAttribute.cs
- TypeElement.cs
- RightsManagementInformation.cs
- LineServices.cs
- CollectionViewGroupInternal.cs
- SqlEnums.cs
- RoutedCommand.cs
- PerfService.cs
- BitmapEffect.cs
- Tracking.cs
- ControlCollection.cs
- XmlDocumentType.cs
- RuleRef.cs
- OutOfProcStateClientManager.cs
- SByteConverter.cs
- Geometry.cs
- GridViewRow.cs
- WhitespaceRule.cs
- FixedSOMLineRanges.cs
- ThreadStateException.cs
- PaginationProgressEventArgs.cs
- RenderDataDrawingContext.cs
- TransformerTypeCollection.cs
- Choices.cs
- Binding.cs
- MultilineStringConverter.cs
- MULTI_QI.cs
- SqlDataReader.cs
- PolicyStatement.cs
- TraceHandlerErrorFormatter.cs
- HtmlHead.cs
- BaseTreeIterator.cs
- Merger.cs
- SecuritySessionFilter.cs
- ImplicitInputBrush.cs
- GroupByExpressionRewriter.cs
- WindowsSolidBrush.cs
- WebPartCatalogCloseVerb.cs
- ImageConverter.cs
- PartialCachingControl.cs
- HyperlinkAutomationPeer.cs
- HwndSubclass.cs
- ProcessInputEventArgs.cs
- DataGridItemCollection.cs
- GraphicsContext.cs
- AutomationPeer.cs
- Constraint.cs
- _UncName.cs
- PreProcessInputEventArgs.cs
- Emitter.cs
- IdentifierCollection.cs
- DependencySource.cs
- Int32Rect.cs
- RichTextBox.cs
- DataControlReferenceCollection.cs
- XPathNode.cs
- OLEDB_Enum.cs
- _NegoStream.cs
- MimeTypeAttribute.cs
- TransformCollection.cs
- ReferencedType.cs
- StringReader.cs
- UserControl.cs
- HuffModule.cs
- ObjectDataSourceChooseMethodsPanel.cs
- HtmlTableCell.cs
- FtpCachePolicyElement.cs
- ProfessionalColors.cs
- _Win32.cs
- InvalidPrinterException.cs
- CodeDelegateCreateExpression.cs
- BasicExpressionVisitor.cs
- XmlSignificantWhitespace.cs
- PointHitTestParameters.cs
- RIPEMD160.cs
- BrowserCapabilitiesFactoryBase.cs
- ElementsClipboardData.cs
- CardSpaceSelector.cs