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
- TextDecorationCollection.cs
- PriorityBinding.cs
- ValidatedControlConverter.cs
- DoubleKeyFrameCollection.cs
- StrokeNodeOperations2.cs
- ZipIOLocalFileBlock.cs
- namescope.cs
- NativeObjectSecurity.cs
- TiffBitmapDecoder.cs
- WebPart.cs
- CompositeFontFamily.cs
- KeyValuePair.cs
- Send.cs
- MostlySingletonList.cs
- VerticalAlignConverter.cs
- TextDecorationLocationValidation.cs
- BindingNavigator.cs
- HttpProcessUtility.cs
- DetailsViewRow.cs
- Confirm.cs
- DeclarativeConditionsCollection.cs
- SqlDataSourceView.cs
- FtpCachePolicyElement.cs
- AnchorEditor.cs
- SqlOuterApplyReducer.cs
- HwndProxyElementProvider.cs
- DependencyPropertyHelper.cs
- COM2AboutBoxPropertyDescriptor.cs
- AtomServiceDocumentSerializer.cs
- SqlMethodAttribute.cs
- Baml2006ReaderContext.cs
- InfoCardRSAPKCS1KeyExchangeDeformatter.cs
- ReferenceConverter.cs
- RemotingSurrogateSelector.cs
- _AutoWebProxyScriptEngine.cs
- Unit.cs
- ObjectStateEntryOriginalDbUpdatableDataRecord.cs
- TaskFormBase.cs
- FtpCachePolicyElement.cs
- SubtreeProcessor.cs
- brushes.cs
- SqlClientWrapperSmiStream.cs
- TraceSection.cs
- ScaleTransform.cs
- AnimationStorage.cs
- DbConnectionOptions.cs
- EnumerableRowCollectionExtensions.cs
- QueryCursorEventArgs.cs
- SymLanguageVendor.cs
- FixedSOMTextRun.cs
- CharacterString.cs
- ComNativeDescriptor.cs
- TemplateControlCodeDomTreeGenerator.cs
- SimpleTableProvider.cs
- XPathCompiler.cs
- ReadOnlyCollection.cs
- WindowsNonControl.cs
- TrackingLocation.cs
- SignerInfo.cs
- Command.cs
- PropertyNames.cs
- Image.cs
- ClrPerspective.cs
- ListItemCollection.cs
- EventLogWatcher.cs
- HtmlShim.cs
- EntityDataSourceStatementEditor.cs
- FacetEnabledSchemaElement.cs
- MSHTMLHostUtil.cs
- AlphaSortedEnumConverter.cs
- TextBlock.cs
- CompilationRelaxations.cs
- SetStoryboardSpeedRatio.cs
- BatchServiceHost.cs
- Focus.cs
- RestHandler.cs
- FormsAuthenticationCredentials.cs
- WindowsUpDown.cs
- MultipartContentParser.cs
- Roles.cs
- XmlCompatibilityReader.cs
- Function.cs
- DataGridClipboardCellContent.cs
- SkipQueryOptionExpression.cs
- MediaContext.cs
- CodeAttributeDeclarationCollection.cs
- ResourcesGenerator.cs
- ExpressionBuilderContext.cs
- FlowDocumentPaginator.cs
- ImageBrush.cs
- TabPanel.cs
- serverconfig.cs
- ServicePointManager.cs
- Repeater.cs
- MetadataException.cs
- ProofTokenCryptoHandle.cs
- CallInfo.cs
- basemetadatamappingvisitor.cs
- SymbolTable.cs
- StdRegProviderWrapper.cs