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
- StringWriter.cs
- CreatingCookieEventArgs.cs
- DataServiceExpressionVisitor.cs
- LoginCancelEventArgs.cs
- QuaternionKeyFrameCollection.cs
- DataRow.cs
- log.cs
- CodeConditionStatement.cs
- DuplicateWaitObjectException.cs
- _LocalDataStoreMgr.cs
- CodeAccessSecurityEngine.cs
- XNodeSchemaApplier.cs
- UITypeEditor.cs
- XPathNavigatorReader.cs
- SimpleBitVector32.cs
- SizeLimitedCache.cs
- DBCSCodePageEncoding.cs
- DecoderFallbackWithFailureFlag.cs
- RegexGroup.cs
- HtmlElementEventArgs.cs
- GrammarBuilderRuleRef.cs
- PolyLineSegment.cs
- ListDictionary.cs
- RepeaterDataBoundAdapter.cs
- CacheMemory.cs
- ExpressionEditor.cs
- DockAndAnchorLayout.cs
- Attribute.cs
- DependencyPropertyValueSerializer.cs
- Unit.cs
- CompiledELinqQueryState.cs
- NullableIntMinMaxAggregationOperator.cs
- InvokePatternIdentifiers.cs
- sortedlist.cs
- HitTestFilterBehavior.cs
- ToolboxItemCollection.cs
- TypeBuilderInstantiation.cs
- ImageAttributes.cs
- DrawItemEvent.cs
- altserialization.cs
- Byte.cs
- TypeUtil.cs
- DataServiceQueryProvider.cs
- ScrollItemProviderWrapper.cs
- AxDesigner.cs
- SessionStateUtil.cs
- Size.cs
- DistributedTransactionPermission.cs
- IteratorDescriptor.cs
- CharacterHit.cs
- CustomErrorCollection.cs
- Evaluator.cs
- TraceXPathNavigator.cs
- FlowDocumentFormatter.cs
- AccessibleObject.cs
- MarshalByRefObject.cs
- CodeSubDirectoriesCollection.cs
- XPathChildIterator.cs
- X509Chain.cs
- SoapFault.cs
- EdmType.cs
- PromptBuilder.cs
- DiscoveryDocument.cs
- DebugView.cs
- QueryOperationResponseOfT.cs
- FrameAutomationPeer.cs
- FloaterParagraph.cs
- ValidationSummary.cs
- PathGeometry.cs
- EnumerableRowCollection.cs
- BuildProviderAppliesToAttribute.cs
- Attributes.cs
- PartEditor.cs
- WindowsEditBoxRange.cs
- TextParagraph.cs
- TableRowsCollectionEditor.cs
- Mutex.cs
- Utils.cs
- RectangleGeometry.cs
- OnOperation.cs
- ListViewContainer.cs
- XmlAutoDetectWriter.cs
- FormsAuthenticationModule.cs
- StylusSystemGestureEventArgs.cs
- Message.cs
- DataGrid.cs
- UniqueConstraint.cs
- StandardOleMarshalObject.cs
- RegionData.cs
- PropertyGridCommands.cs
- WorkflowInstanceExtensionManager.cs
- FixedSOMTableRow.cs
- StringUtil.cs
- TextTreeTextBlock.cs
- PropertyEmitterBase.cs
- _PooledStream.cs
- LocalizationComments.cs
- StringUtil.cs
- IndentedTextWriter.cs
- IgnoreSectionHandler.cs