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
- MimeReturn.cs
- SR.cs
- SigningCredentials.cs
- NameGenerator.cs
- BinaryNode.cs
- HandledEventArgs.cs
- TagMapCollection.cs
- ConfigViewGenerator.cs
- Site.cs
- DataGrid.cs
- DocumentApplicationJournalEntry.cs
- ExtractedStateEntry.cs
- DataGridViewColumnTypePicker.cs
- WaitHandle.cs
- ObjectQuery_EntitySqlExtensions.cs
- KeyEventArgs.cs
- HttpModuleCollection.cs
- OdbcConnection.cs
- DataGridViewCellStyleConverter.cs
- RegexTree.cs
- StorageMappingItemCollection.cs
- DecoderExceptionFallback.cs
- GenericWebPart.cs
- VisualBrush.cs
- HtmlButton.cs
- SessionParameter.cs
- TransactionFlowOption.cs
- ListDictionary.cs
- SchemaAttDef.cs
- InvokeHandlers.cs
- FolderLevelBuildProvider.cs
- WorkflowPageSetupDialog.cs
- ToolStripItemTextRenderEventArgs.cs
- Expander.cs
- TextInfo.cs
- ProxyWebPartConnectionCollection.cs
- Attributes.cs
- JsonWriter.cs
- RegisteredDisposeScript.cs
- SchemaElementLookUpTable.cs
- SizeChangedEventArgs.cs
- ListenerConnectionModeReader.cs
- DomNameTable.cs
- ObjectRef.cs
- TextEndOfParagraph.cs
- ContractComponent.cs
- EmptyControlCollection.cs
- ToolStripDropDownClosedEventArgs.cs
- SafeCryptContextHandle.cs
- Compiler.cs
- WizardPanel.cs
- ClientSession.cs
- ConfigurationSection.cs
- SqlCacheDependencyDatabaseCollection.cs
- EntityTemplateUserControl.cs
- DBSchemaTable.cs
- HitTestResult.cs
- ZipIOExtraFieldPaddingElement.cs
- MgmtConfigurationRecord.cs
- ViewStateException.cs
- XmlObjectSerializerContext.cs
- UndoEngine.cs
- SendSecurityHeaderElementContainer.cs
- TCPClient.cs
- AnimationClock.cs
- XmlValueConverter.cs
- KnownTypes.cs
- FormViewDeleteEventArgs.cs
- SessionViewState.cs
- IncrementalHitTester.cs
- StandardRuntimeEnumValidatorAttribute.cs
- ConfigXmlText.cs
- PersistChildrenAttribute.cs
- TypeUnloadedException.cs
- DesignerDataConnection.cs
- AssemblyEvidenceFactory.cs
- DataGridBoolColumn.cs
- SafeNativeMethodsMilCoreApi.cs
- ObjectTypeMapping.cs
- NameValuePair.cs
- StylesEditorDialog.cs
- CultureData.cs
- Stylesheet.cs
- GridViewCommandEventArgs.cs
- AdapterSwitches.cs
- Polyline.cs
- HyperLinkColumn.cs
- SoapSchemaExporter.cs
- BitmapEffectState.cs
- SafeNativeMethods.cs
- CodeDefaultValueExpression.cs
- ProxyFragment.cs
- TraceListener.cs
- ResourceExpressionBuilder.cs
- StateMachineWorkflowInstance.cs
- ContextDataSource.cs
- EncryptedKeyIdentifierClause.cs
- TableLayoutPanelCellPosition.cs
- WsdlBuildProvider.cs
- VectorConverter.cs