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
- GeometryConverter.cs
- EntityDataSourceView.cs
- EventMap.cs
- HierarchicalDataSourceControl.cs
- DefaultPrintController.cs
- Stroke2.cs
- GenerateScriptTypeAttribute.cs
- WorkflowOperationAsyncResult.cs
- GacUtil.cs
- ImageSourceConverter.cs
- XmlAttributeProperties.cs
- PerformanceCountersBase.cs
- PropertyGridCommands.cs
- WFItemsToSpacerVisibility.cs
- NetworkInterface.cs
- DataGridRowAutomationPeer.cs
- WebFaultException.cs
- BooleanAnimationUsingKeyFrames.cs
- AffineTransform3D.cs
- SQLBinary.cs
- SqlAliasesReferenced.cs
- WebPartZoneAutoFormat.cs
- ProxyFragment.cs
- ManifestResourceInfo.cs
- ObjectComplexPropertyMapping.cs
- SoapParser.cs
- GraphicsPathIterator.cs
- SimpleApplicationHost.cs
- ChildrenQuery.cs
- TrackingServices.cs
- Utility.cs
- StorageComplexPropertyMapping.cs
- CustomErrorsSection.cs
- FileDialogCustomPlacesCollection.cs
- TimeIntervalCollection.cs
- DataGridViewBindingCompleteEventArgs.cs
- CodeFieldReferenceExpression.cs
- AlgoModule.cs
- EntityReference.cs
- StringFunctions.cs
- TagMapInfo.cs
- ContentTypeSettingClientMessageFormatter.cs
- Label.cs
- CharacterShapingProperties.cs
- RewritingProcessor.cs
- CodeGeneratorOptions.cs
- KoreanCalendar.cs
- RijndaelManagedTransform.cs
- ObjectMemberMapping.cs
- ProgressChangedEventArgs.cs
- ContainerUIElement3D.cs
- DataControlReferenceCollection.cs
- Translator.cs
- Unit.cs
- SafeRightsManagementPubHandle.cs
- InstanceDataCollection.cs
- DataTableReaderListener.cs
- Triplet.cs
- MethodBuilderInstantiation.cs
- FileDialog_Vista_Interop.cs
- RuleSettings.cs
- PenThreadWorker.cs
- Point.cs
- PackageStore.cs
- ScrollProviderWrapper.cs
- AsyncResult.cs
- ServiceOperationWrapper.cs
- SqlDataAdapter.cs
- DockPatternIdentifiers.cs
- HttpWriter.cs
- Restrictions.cs
- EventsTab.cs
- ServiceMetadataContractBehavior.cs
- ControlBindingsCollection.cs
- ReflectEventDescriptor.cs
- EntityDataSourceEntityTypeFilterConverter.cs
- RSAPKCS1KeyExchangeDeformatter.cs
- DesignerEditorPartChrome.cs
- WebPartConnectionsCancelEventArgs.cs
- UpdatePanelTriggerCollection.cs
- DataServiceQueryOfT.cs
- ObjectStateEntry.cs
- SafeNativeMethods.cs
- AdornerPresentationContext.cs
- validationstate.cs
- PageCatalogPart.cs
- TimeoutException.cs
- IisTraceWebEventProvider.cs
- Filter.cs
- PropertyPathWorker.cs
- PackageStore.cs
- StorageSetMapping.cs
- SqlPersonalizationProvider.cs
- CompilerErrorCollection.cs
- ObjectStateEntryOriginalDbUpdatableDataRecord.cs
- WebPartConnectionsConnectVerb.cs
- WindowsListViewItem.cs
- ClientConfigurationHost.cs
- DataObject.cs
- ChtmlPhoneCallAdapter.cs