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
- BitmapEffectInput.cs
- SafeIUnknown.cs
- FormatSettings.cs
- PropertyTabAttribute.cs
- ReferenceService.cs
- HashHelpers.cs
- SmtpCommands.cs
- TypedTableBaseExtensions.cs
- User.cs
- AuthenticationModuleElement.cs
- SmiXetterAccessMap.cs
- RegexMatch.cs
- StatusBar.cs
- MatrixTransform.cs
- ChangeProcessor.cs
- ConnectionPointConverter.cs
- Renderer.cs
- ServicesSection.cs
- CheckedPointers.cs
- GeneralTransform3DTo2D.cs
- Converter.cs
- DbSource.cs
- _ShellExpression.cs
- IconConverter.cs
- ToolStripComboBox.cs
- SoapFaultCodes.cs
- XslVisitor.cs
- SpellerHighlightLayer.cs
- GridViewDeleteEventArgs.cs
- _emptywebproxy.cs
- ErrorStyle.cs
- FieldNameLookup.cs
- RoleGroup.cs
- DynamicValueConverter.cs
- QilTypeChecker.cs
- GridToolTip.cs
- ByteAnimation.cs
- PenThreadWorker.cs
- EventLogHandle.cs
- BuiltInPermissionSets.cs
- CacheManager.cs
- PnrpPeerResolverElement.cs
- LayoutTableCell.cs
- KnownTypesHelper.cs
- WebPartVerb.cs
- BackgroundWorker.cs
- SchemaRegistration.cs
- contentDescriptor.cs
- BindingNavigator.cs
- DataRow.cs
- MethodInfo.cs
- SystemIPInterfaceStatistics.cs
- WorkItem.cs
- PcmConverter.cs
- FilteredAttributeCollection.cs
- AsymmetricSignatureDeformatter.cs
- DataKeyArray.cs
- ComponentChangingEvent.cs
- TrackingMemoryStream.cs
- ToolZone.cs
- EdmSchemaAttribute.cs
- Connector.xaml.cs
- PrintDialogException.cs
- EventManager.cs
- ResolveMatchesCD1.cs
- CollectionViewGroup.cs
- Int32CollectionValueSerializer.cs
- TrackingMemoryStream.cs
- SerializableAttribute.cs
- ParameterCollection.cs
- WindowsScrollBar.cs
- SqlRecordBuffer.cs
- HMACSHA1.cs
- OdbcError.cs
- DBCommandBuilder.cs
- InkCanvasSelection.cs
- DataDocumentXPathNavigator.cs
- WebPartManager.cs
- TextRangeAdaptor.cs
- InvalidProgramException.cs
- RawStylusInputCustomDataList.cs
- XmlNamespaceDeclarationsAttribute.cs
- ReadOnlyAttribute.cs
- CodeCatchClause.cs
- MeshGeometry3D.cs
- MetadataArtifactLoaderResource.cs
- SByteStorage.cs
- TypeConverterMarkupExtension.cs
- RC2.cs
- GroupBox.cs
- ObjectAnimationUsingKeyFrames.cs
- CollectionConverter.cs
- XmlAttributes.cs
- WebContext.cs
- RegexInterpreter.cs
- Regex.cs
- Int16AnimationUsingKeyFrames.cs
- PackUriHelper.cs
- StyleCollection.cs
- TimeSpanStorage.cs