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
- EntityContainerEmitter.cs
- ColorMatrix.cs
- CustomValidator.cs
- StylusEventArgs.cs
- DataTableMappingCollection.cs
- DodSequenceMerge.cs
- BindingMAnagerBase.cs
- SmiRequestExecutor.cs
- DependencyPropertyValueSerializer.cs
- ObjectPersistData.cs
- SmtpLoginAuthenticationModule.cs
- HtmlInputRadioButton.cs
- OleDbTransaction.cs
- InvariantComparer.cs
- Scene3D.cs
- LinkLabelLinkClickedEvent.cs
- Point3DConverter.cs
- CodeComment.cs
- DebugControllerThread.cs
- RenderingEventArgs.cs
- PenThread.cs
- XPathDescendantIterator.cs
- OleDbException.cs
- HttpVersion.cs
- FactoryMaker.cs
- DataSourceControl.cs
- CacheRequest.cs
- TagNameToTypeMapper.cs
- AnnotationHelper.cs
- OutputCacheSettings.cs
- Hash.cs
- BooleanKeyFrameCollection.cs
- SiteMapPath.cs
- OutputCacheSettingsSection.cs
- GenericEnumerator.cs
- ServiceModelEnumValidator.cs
- TypeElement.cs
- CharEnumerator.cs
- TextElementCollection.cs
- RowUpdatingEventArgs.cs
- InfiniteTimeSpanConverter.cs
- FacetEnabledSchemaElement.cs
- WebScriptServiceHost.cs
- Table.cs
- SizeAnimationBase.cs
- CheckedPointers.cs
- SurrogateEncoder.cs
- oledbmetadatacolumnnames.cs
- HttpDictionary.cs
- SafeFileMapViewHandle.cs
- UnauthorizedWebPart.cs
- SimpleLine.cs
- basevalidator.cs
- ColorAnimationBase.cs
- RubberbandSelector.cs
- WpfKnownTypeInvoker.cs
- HtmlToClrEventProxy.cs
- RepeaterItemCollection.cs
- SqlConnectionHelper.cs
- SequentialUshortCollection.cs
- OutOfMemoryException.cs
- HttpClientCertificate.cs
- ByeMessage11.cs
- TableLayoutRowStyleCollection.cs
- SapiRecoContext.cs
- PersonalizationStateInfoCollection.cs
- OracleParameterCollection.cs
- CompatibleIComparer.cs
- FileLogRecordHeader.cs
- CriticalExceptions.cs
- SpeakInfo.cs
- ReadOnlyNameValueCollection.cs
- MsmqIntegrationReceiveParameters.cs
- RawTextInputReport.cs
- PrefixHandle.cs
- ConfigXmlDocument.cs
- Number.cs
- MachineKeySection.cs
- ClientApiGenerator.cs
- ClientUrlResolverWrapper.cs
- ListViewEditEventArgs.cs
- CaseInsensitiveComparer.cs
- EditableTreeList.cs
- InternalResources.cs
- AssociatedControlConverter.cs
- TypeForwardedFromAttribute.cs
- TrackingWorkflowEventArgs.cs
- SafeRegistryHandle.cs
- SecurityState.cs
- LineBreakRecord.cs
- CompilationPass2TaskInternal.cs
- ParallelDesigner.cs
- XmlReturnWriter.cs
- ValidationPropertyAttribute.cs
- CompoundFileReference.cs
- AvtEvent.cs
- TextBounds.cs
- WriteableBitmap.cs
- HistoryEventArgs.cs
- DllHostInitializer.cs