Code:
/ DotNET / DotNET / 8.0 / untmp / Orcas / RTM / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ButtonAutomationPeer.cs
- MediaTimeline.cs
- XDeferredAxisSource.cs
- PieceNameHelper.cs
- EncryptedPackage.cs
- HtmlString.cs
- Win32Exception.cs
- DefaultValueAttribute.cs
- HtmlInputPassword.cs
- WorkflowInstanceExtensionCollection.cs
- InkCollectionBehavior.cs
- AncestorChangedEventArgs.cs
- WorkflowServiceBuildProvider.cs
- XmlNamespaceMapping.cs
- HttpTransportBindingElement.cs
- SafeEventLogWriteHandle.cs
- HtmlTable.cs
- SamlAttributeStatement.cs
- ActivityLocationReferenceEnvironment.cs
- TransformerInfo.cs
- CTreeGenerator.cs
- Int32.cs
- DocumentViewerAutomationPeer.cs
- WebBrowserContainer.cs
- PlainXmlSerializer.cs
- PropertyDescriptorGridEntry.cs
- ComPlusInstanceProvider.cs
- RegexMatchCollection.cs
- AttachInfo.cs
- GcHandle.cs
- FixedTextBuilder.cs
- DocumentGrid.cs
- OutgoingWebResponseContext.cs
- _CacheStreams.cs
- MatrixTransform3D.cs
- Calendar.cs
- RequiredFieldValidator.cs
- XomlSerializationHelpers.cs
- Splitter.cs
- SystemIPv4InterfaceProperties.cs
- DataGridCell.cs
- TemplateField.cs
- SqlCommandSet.cs
- WebResourceAttribute.cs
- GetImportedCardRequest.cs
- NumberAction.cs
- PermissionRequestEvidence.cs
- ChtmlCommandAdapter.cs
- TemplateBuilder.cs
- WebServiceResponseDesigner.cs
- DataView.cs
- LineBreakRecord.cs
- ExpressionNormalizer.cs
- BaseComponentEditor.cs
- AttributeConverter.cs
- BackgroundWorker.cs
- basevalidator.cs
- ConstraintStruct.cs
- SatelliteContractVersionAttribute.cs
- RsaSecurityTokenParameters.cs
- CompiledIdentityConstraint.cs
- SmtpCommands.cs
- IdentityHolder.cs
- PlatformNotSupportedException.cs
- Vector3DKeyFrameCollection.cs
- SortedDictionary.cs
- ConfigsHelper.cs
- RelationHandler.cs
- QilInvoke.cs
- WebPartZone.cs
- ConfigurationStrings.cs
- WebServiceEnumData.cs
- StrongNameMembershipCondition.cs
- PerspectiveCamera.cs
- DeviceSpecificDialogCachedState.cs
- AdornerPresentationContext.cs
- IndicCharClassifier.cs
- Frame.cs
- DataGridViewRowCollection.cs
- _NestedSingleAsyncResult.cs
- InstancePersistenceException.cs
- XmlElement.cs
- PropertyGridView.cs
- DataSetFieldSchema.cs
- _BaseOverlappedAsyncResult.cs
- InvalidStoreProtectionKeyException.cs
- MeasureItemEvent.cs
- DoWorkEventArgs.cs
- CfgSemanticTag.cs
- NetworkCredential.cs
- ListBoxChrome.cs
- ObjectHandle.cs
- PixelShader.cs
- SingleStorage.cs
- ZipIOExtraFieldZip64Element.cs
- TemplateAction.cs
- FindResponse.cs
- DynamicDataResources.Designer.cs
- InstancePersistence.cs
- DataGridViewButtonCell.cs