Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SafeNativeMethods.cs
- DrawingContextWalker.cs
- TriggerActionCollection.cs
- XmlAttributeAttribute.cs
- UMPAttributes.cs
- ProxyGenerationError.cs
- DesignerAutoFormatStyle.cs
- MultiView.cs
- XXXInfos.cs
- TemplateParser.cs
- ManagementOperationWatcher.cs
- SessionStateUtil.cs
- EndEvent.cs
- BeginStoryboard.cs
- BufferModesCollection.cs
- EmptyImpersonationContext.cs
- IndexExpression.cs
- MatchingStyle.cs
- OverflowException.cs
- DynamicActivityProperty.cs
- SQLGuidStorage.cs
- ThemeInfoAttribute.cs
- DataListItemEventArgs.cs
- PriorityQueue.cs
- TemplateBaseAction.cs
- ClientFormsIdentity.cs
- Utilities.cs
- MetabaseServerConfig.cs
- SafeNativeMethodsOther.cs
- ReadOnlyNameValueCollection.cs
- DesignerAdapterUtil.cs
- BooleanStorage.cs
- CacheMemory.cs
- TreeViewItem.cs
- RotationValidation.cs
- SiteMapHierarchicalDataSourceView.cs
- DesignTimeParseData.cs
- PngBitmapDecoder.cs
- DataGridHelper.cs
- SpecularMaterial.cs
- SQLGuid.cs
- SessionPageStateSection.cs
- DesignParameter.cs
- DependsOnAttribute.cs
- SafeRightsManagementPubHandle.cs
- CodeGenerator.cs
- SqlGatherProducedAliases.cs
- WebBrowserEvent.cs
- AbstractSvcMapFileLoader.cs
- HandlerFactoryCache.cs
- FileDialogPermission.cs
- TemplateBuilder.cs
- ServiceModelConfigurationSectionGroup.cs
- TextTreeRootTextBlock.cs
- TrustLevelCollection.cs
- UIntPtr.cs
- GeometryDrawing.cs
- BitSet.cs
- HMACMD5.cs
- Icon.cs
- GroupLabel.cs
- DataGridViewCellConverter.cs
- DefaultValueAttribute.cs
- BrowserDefinitionCollection.cs
- WindowsAuthenticationEventArgs.cs
- HttpWebResponse.cs
- MetadataWorkspace.cs
- Rect.cs
- PersonalizationStateQuery.cs
- wmiprovider.cs
- LinkArea.cs
- InputLanguageSource.cs
- CurrentChangingEventManager.cs
- ObjectFullSpanRewriter.cs
- UnitySerializationHolder.cs
- CatchBlock.cs
- ScriptManagerProxy.cs
- EventData.cs
- ObjectDataSourceSelectingEventArgs.cs
- Authorization.cs
- Rule.cs
- HighContrastHelper.cs
- Clipboard.cs
- TracedNativeMethods.cs
- Condition.cs
- ReadOnlyHierarchicalDataSource.cs
- TableCell.cs
- SafeBuffer.cs
- QueryExpr.cs
- TextPattern.cs
- SqlCommandBuilder.cs
- BinaryMessageFormatter.cs
- MessageFormatterConverter.cs
- AnchoredBlock.cs
- TextChangedEventArgs.cs
- FormsAuthenticationEventArgs.cs
- BooleanSwitch.cs
- ToolStripSeparatorRenderEventArgs.cs
- DrawingDrawingContext.cs
- SqlWriter.cs