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
- SamlAuthorityBinding.cs
- PrintDialogException.cs
- Range.cs
- FontConverter.cs
- LabelLiteral.cs
- XPathPatternParser.cs
- ChangeConflicts.cs
- LinqDataSourceValidationException.cs
- PackageRelationshipSelector.cs
- SecondaryIndex.cs
- MailSettingsSection.cs
- TokenBasedSetEnumerator.cs
- ButtonField.cs
- GridItemPatternIdentifiers.cs
- TextWriter.cs
- InternalControlCollection.cs
- TextDocumentView.cs
- _DigestClient.cs
- Triangle.cs
- ScalarOps.cs
- OrthographicCamera.cs
- ManagedFilter.cs
- RoutedEventValueSerializer.cs
- Literal.cs
- LowerCaseStringConverter.cs
- UseManagedPresentationBindingElementImporter.cs
- SqlMethodCallConverter.cs
- FindSimilarActivitiesVerb.cs
- WebEventCodes.cs
- Pair.cs
- HttpCapabilitiesSectionHandler.cs
- DbModificationClause.cs
- FixedBufferAttribute.cs
- AmbientLight.cs
- RedistVersionInfo.cs
- AttributeQuery.cs
- RadioButtonBaseAdapter.cs
- IOException.cs
- SystemIPGlobalProperties.cs
- TimeSpanMinutesConverter.cs
- CapabilitiesSection.cs
- Rect3DConverter.cs
- XPathBuilder.cs
- Wrapper.cs
- ResourceType.cs
- TrackingParameters.cs
- DBSqlParserColumn.cs
- ManipulationStartingEventArgs.cs
- Byte.cs
- WindowsRebar.cs
- TextParaClient.cs
- NameTable.cs
- DataGridTableCollection.cs
- SendMailErrorEventArgs.cs
- Imaging.cs
- ReachDocumentReferenceSerializer.cs
- BigInt.cs
- columnmapkeybuilder.cs
- DispatchChannelSink.cs
- HtmlEncodedRawTextWriter.cs
- Config.cs
- ToolStripDropDownButton.cs
- CodeTypeReferenceExpression.cs
- TheQuery.cs
- SqlMetaData.cs
- ListSourceHelper.cs
- NameValueConfigurationElement.cs
- DynamicAttribute.cs
- TypedTableBase.cs
- HtmlInputFile.cs
- EventsTab.cs
- DataGridViewBand.cs
- SelectedDatesCollection.cs
- ZipIOFileItemStream.cs
- ConstrainedDataObject.cs
- versioninfo.cs
- JsonByteArrayDataContract.cs
- _ProxyChain.cs
- RtfControlWordInfo.cs
- RadioButtonBaseAdapter.cs
- Int32CAMarshaler.cs
- ElapsedEventArgs.cs
- Pair.cs
- MissingMethodException.cs
- AddInPipelineAttributes.cs
- XmlArrayItemAttributes.cs
- LocatorGroup.cs
- DataGridBoundColumn.cs
- UIAgentRequest.cs
- GetIndexBinder.cs
- ToolStripMenuItem.cs
- BamlRecordHelper.cs
- CallId.cs
- UInt64.cs
- DataTable.cs
- RangeContentEnumerator.cs
- SQLResource.cs
- DataColumnCollection.cs
- GridViewUpdateEventArgs.cs
- MarshalByValueComponent.cs