Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / ndp / fx / src / xsp / System / Web / Extensions / ui / ServiceReference.cs / 2 / ServiceReference.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.UI { using System; using System.ComponentModel; using System.Diagnostics; using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Security.Permissions; using System.Web; using System.Web.Compilation; using System.Web.UI; using System.Web.Resources; using System.Web.Script.Services; [ AspNetHostingPermission(SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal), AspNetHostingPermission(SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal), DefaultProperty("Path") ] public class ServiceReference { private string _path; private bool _inlineScript; public ServiceReference() { } public ServiceReference(string path) { Path = path; } [ ResourceDescription("ServiceReference_InlineScript"), DefaultValue(false), Category("Behavior") ] public bool InlineScript { get { return _inlineScript; } set { _inlineScript = value; } } [ ResourceDescription("ServiceReference_Path"), DefaultValue(""), Category("Behavior"), UrlProperty() ] public string Path { get { if (_path == null) { return String.Empty; } return _path; } set { _path = value; } } private string GetInlineScript(Control containingControl, HttpContext context, bool debug) { // Do not attempt to resolve inline service references on PageMethod requests. if (RestHandlerFactory.IsRestMethodCall(context.Request)) { return String.Empty; } string servicePath = GetServicePath(containingControl, false); try { servicePath = VirtualPathUtility.Combine(context.Request.FilePath, servicePath); } catch { throw new ArgumentException(String.Format(CultureInfo.InvariantCulture, AtlasWeb.WebService_InvalidInlineVirtualPath, servicePath)); } return WebServiceClientProxyGenerator.GetInlineClientProxyScript(servicePath, context, debug); } private string GetServicePath(Control containingControl, bool encodeSpaces) { string path = Path; if (String.IsNullOrEmpty(path)) { throw new InvalidOperationException(AtlasWeb.ServiceReference_PathCannotBeEmpty); } if (encodeSpaces) { path = containingControl.ResolveClientUrl(path); } else { path = containingControl.ResolveUrl(path); } return path; } private string GetProxyPath(Control containingControl, bool debug) { if (debug) return GetServicePath(containingControl, true) + RestHandlerFactory.ClientDebugProxyRequestPathInfo; else return GetServicePath(containingControl, true) + RestHandlerFactory.ClientProxyRequestPathInfo; } internal void Register(Control containingControl, HttpContext context, ScriptManager scriptManager, bool debug) { if (InlineScript) { RenderClientScriptBlock(GetInlineScript(containingControl, context, debug), scriptManager); } else { RegisterClientScriptInclude(GetProxyPath(containingControl, debug), scriptManager); } } private static void RegisterClientScriptInclude(string path, ScriptManager scriptManager) { scriptManager.RegisterClientScriptIncludeInternal(scriptManager, typeof(ScriptManager), path, path); } private static void RenderClientScriptBlock(string script, ScriptManager scriptManager) { scriptManager.RegisterClientScriptBlockInternal(scriptManager, typeof(ScriptManager), script, script, true); } [SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase")] public override string ToString() { if (!String.IsNullOrEmpty(Path)) { return Path; } else { return GetType().Name; } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.UI { using System; using System.ComponentModel; using System.Diagnostics; using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Security.Permissions; using System.Web; using System.Web.Compilation; using System.Web.UI; using System.Web.Resources; using System.Web.Script.Services; [ AspNetHostingPermission(SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal), AspNetHostingPermission(SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal), DefaultProperty("Path") ] public class ServiceReference { private string _path; private bool _inlineScript; public ServiceReference() { } public ServiceReference(string path) { Path = path; } [ ResourceDescription("ServiceReference_InlineScript"), DefaultValue(false), Category("Behavior") ] public bool InlineScript { get { return _inlineScript; } set { _inlineScript = value; } } [ ResourceDescription("ServiceReference_Path"), DefaultValue(""), Category("Behavior"), UrlProperty() ] public string Path { get { if (_path == null) { return String.Empty; } return _path; } set { _path = value; } } private string GetInlineScript(Control containingControl, HttpContext context, bool debug) { // Do not attempt to resolve inline service references on PageMethod requests. if (RestHandlerFactory.IsRestMethodCall(context.Request)) { return String.Empty; } string servicePath = GetServicePath(containingControl, false); try { servicePath = VirtualPathUtility.Combine(context.Request.FilePath, servicePath); } catch { throw new ArgumentException(String.Format(CultureInfo.InvariantCulture, AtlasWeb.WebService_InvalidInlineVirtualPath, servicePath)); } return WebServiceClientProxyGenerator.GetInlineClientProxyScript(servicePath, context, debug); } private string GetServicePath(Control containingControl, bool encodeSpaces) { string path = Path; if (String.IsNullOrEmpty(path)) { throw new InvalidOperationException(AtlasWeb.ServiceReference_PathCannotBeEmpty); } if (encodeSpaces) { path = containingControl.ResolveClientUrl(path); } else { path = containingControl.ResolveUrl(path); } return path; } private string GetProxyPath(Control containingControl, bool debug) { if (debug) return GetServicePath(containingControl, true) + RestHandlerFactory.ClientDebugProxyRequestPathInfo; else return GetServicePath(containingControl, true) + RestHandlerFactory.ClientProxyRequestPathInfo; } internal void Register(Control containingControl, HttpContext context, ScriptManager scriptManager, bool debug) { if (InlineScript) { RenderClientScriptBlock(GetInlineScript(containingControl, context, debug), scriptManager); } else { RegisterClientScriptInclude(GetProxyPath(containingControl, debug), scriptManager); } } private static void RegisterClientScriptInclude(string path, ScriptManager scriptManager) { scriptManager.RegisterClientScriptIncludeInternal(scriptManager, typeof(ScriptManager), path, path); } private static void RenderClientScriptBlock(string script, ScriptManager scriptManager) { scriptManager.RegisterClientScriptBlockInternal(scriptManager, typeof(ScriptManager), script, script, true); } [SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase")] public override string ToString() { if (!String.IsNullOrEmpty(Path)) { return Path; } else { return GetType().Name; } } } } // 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
- UrlPath.cs
- MailWebEventProvider.cs
- HtmlCalendarAdapter.cs
- EdmProviderManifest.cs
- XPathArrayIterator.cs
- CanonicalFormWriter.cs
- HandlerBase.cs
- EditingCoordinator.cs
- TemplateBuilder.cs
- BooleanFacetDescriptionElement.cs
- Automation.cs
- FtpWebResponse.cs
- InfoCardProofToken.cs
- OdbcConnectionStringbuilder.cs
- ResourceDisplayNameAttribute.cs
- NetworkStream.cs
- NumberFormatInfo.cs
- TextDecorationUnitValidation.cs
- SrgsGrammar.cs
- BooleanToVisibilityConverter.cs
- SimpleType.cs
- SettingsPropertyIsReadOnlyException.cs
- InitializationEventAttribute.cs
- CodeBlockBuilder.cs
- DateTimePickerDesigner.cs
- DataTable.cs
- HttpsChannelFactory.cs
- AudioBase.cs
- CodeStatementCollection.cs
- UserPersonalizationStateInfo.cs
- ViewRendering.cs
- XmlSignatureProperties.cs
- TextParagraphProperties.cs
- DependsOnAttribute.cs
- OLEDB_Util.cs
- Margins.cs
- CommandBinding.cs
- PointCollectionConverter.cs
- RequestBringIntoViewEventArgs.cs
- EntityClassGenerator.cs
- HtmlElementErrorEventArgs.cs
- InstanceHandle.cs
- MatrixTransform3D.cs
- ReadContentAsBinaryHelper.cs
- Transactions.cs
- ConnectionsZoneAutoFormat.cs
- MatrixTransform.cs
- RectAnimation.cs
- CodeTypeParameter.cs
- WebPartChrome.cs
- ContainerParagraph.cs
- NamedElement.cs
- AnnotationHighlightLayer.cs
- SeekStoryboard.cs
- Span.cs
- DocumentApplicationJournalEntry.cs
- SubMenuStyleCollection.cs
- TreeNodeCollection.cs
- XmlNamespaceDeclarationsAttribute.cs
- BigInt.cs
- HttpProfileBase.cs
- Walker.cs
- UnsafeNetInfoNativeMethods.cs
- DiagnosticsConfiguration.cs
- ViewBox.cs
- MdiWindowListStrip.cs
- GeometryValueSerializer.cs
- TextAnchor.cs
- UrlMappingsModule.cs
- PhysicalOps.cs
- NamedPermissionSet.cs
- Utilities.cs
- ScriptRegistrationManager.cs
- ProtocolElement.cs
- SHA384.cs
- Nullable.cs
- UmAlQuraCalendar.cs
- PerformanceCounterPermissionEntry.cs
- TextEditorSelection.cs
- EdmConstants.cs
- RenderOptions.cs
- ListControlBuilder.cs
- BounceEase.cs
- ActivityBindForm.Designer.cs
- InvalidProgramException.cs
- SQLDecimal.cs
- LocalizabilityAttribute.cs
- Setter.cs
- DataGridViewColumnTypePicker.cs
- SocketPermission.cs
- ReverseInheritProperty.cs
- ExpressionConverter.cs
- EventNotify.cs
- SqlParameterCollection.cs
- PointValueSerializer.cs
- OlePropertyStructs.cs
- FrameworkElementFactoryMarkupObject.cs
- PageThemeParser.cs
- CodeGeneratorOptions.cs
- BackStopAuthenticationModule.cs