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
- CollectionChange.cs
- FixedSOMTableRow.cs
- PagedDataSource.cs
- FaultContext.cs
- QueuePropertyVariants.cs
- RemotingAttributes.cs
- DatatypeImplementation.cs
- AlphabetConverter.cs
- XmlSchemaSimpleTypeRestriction.cs
- RSAPKCS1KeyExchangeDeformatter.cs
- MethodCallExpression.cs
- UIElement3D.cs
- HttpDebugHandler.cs
- PropertyTabChangedEvent.cs
- ItemCollectionEditor.cs
- TextBoxBase.cs
- VisualState.cs
- DoubleLinkList.cs
- SmiEventStream.cs
- CommandDevice.cs
- DoubleCollectionValueSerializer.cs
- DeviceFilterDictionary.cs
- TabControlEvent.cs
- XsltContext.cs
- ConstantProjectedSlot.cs
- LinearKeyFrames.cs
- WebHostedComPlusServiceHost.cs
- OutputCacheSection.cs
- ScriptComponentDescriptor.cs
- ProcessRequestArgs.cs
- DBSchemaTable.cs
- URLString.cs
- SqlHelper.cs
- RenderData.cs
- SecurityProtocol.cs
- TaiwanLunisolarCalendar.cs
- EventHandlers.cs
- Component.cs
- ZoneButton.cs
- ClrPerspective.cs
- XmlSchemaGroupRef.cs
- EntryIndex.cs
- MarkupProperty.cs
- DbConnectionStringCommon.cs
- ExtentKey.cs
- HtmlTable.cs
- KnownBoxes.cs
- OpenFileDialog.cs
- ServiceRouteHandler.cs
- sortedlist.cs
- ApplicationCommands.cs
- Line.cs
- IDReferencePropertyAttribute.cs
- PowerStatus.cs
- securitycriticaldataformultiplegetandset.cs
- WindowInteractionStateTracker.cs
- ISCIIEncoding.cs
- SqlIdentifier.cs
- ContextMarshalException.cs
- ComboBoxItem.cs
- JsonQNameDataContract.cs
- DataListItem.cs
- ImageBrush.cs
- StringHelper.cs
- VisualStyleRenderer.cs
- XmlILAnnotation.cs
- BatchServiceHost.cs
- DetailsViewInsertedEventArgs.cs
- PointConverter.cs
- ApplicationGesture.cs
- SpStreamWrapper.cs
- SiteMapPath.cs
- XmlParser.cs
- DependencyPropertyConverter.cs
- TextParentUndoUnit.cs
- WindowsScroll.cs
- DataRelationCollection.cs
- brushes.cs
- Emitter.cs
- COM2TypeInfoProcessor.cs
- GeometryModel3D.cs
- RawStylusInputReport.cs
- RolePrincipal.cs
- WebPartsPersonalizationAuthorization.cs
- _NestedMultipleAsyncResult.cs
- TextProperties.cs
- VisualStateChangedEventArgs.cs
- UserControlDesigner.cs
- CompressStream.cs
- ColumnMapTranslator.cs
- QueryableDataSourceView.cs
- WebPartConnectionsCancelEventArgs.cs
- PeerNameRegistration.cs
- InvariantComparer.cs
- SimpleTypesSurrogate.cs
- ObjectStateFormatter.cs
- TextLine.cs
- AssociationType.cs
- WebPartUtil.cs
- XmlReflectionMember.cs