Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / xsp / System / Extensions / UI / ServiceReference.cs / 1305376 / 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.Web;
using System.Web.Compilation;
using System.Web.UI;
using System.Web.Resources;
using System.Web.Script.Services;
[
DefaultProperty("Path")
]
public class ServiceReference {
private string _path;
private bool _inlineScript;
// needed at design time to remember what control owns this service reference (SM or SMP)
internal Control _containingControl;
public ServiceReference() {
}
public ServiceReference(string path) {
// do not use the virtual Path property setter here as it would violate Microsft.Usage:DoNotCallOverridableMethodsInConstructors
// A derived class is not likely to use this constructor anyway -- if they do, and they rely on an overridden Path property,
// they could call the property directly rather than use this constructor.
_path = path;
}
[
ResourceDescription("ServiceReference_InlineScript"),
DefaultValue(false),
Category("Behavior")
]
public virtual bool InlineScript {
get {
return _inlineScript;
}
set {
_inlineScript = value;
}
}
[
ResourceDescription("ServiceReference_Path"),
DefaultValue(""),
Category("Behavior"),
UrlProperty()
]
public virtual string Path {
get {
return _path ?? String.Empty;
}
set {
_path = value;
}
}
protected internal virtual string GetProxyScript(ScriptManager scriptManager, Control containingControl) {
string serviceUrl = GetServiceUrl(containingControl, false);
try {
serviceUrl = VirtualPathUtility.Combine(containingControl.Context.Request.FilePath, serviceUrl);
}
catch {
throw new ArgumentException(
String.Format(CultureInfo.InvariantCulture, AtlasWeb.WebService_InvalidInlineVirtualPath, serviceUrl));
}
return WebServiceClientProxyGenerator.GetInlineClientProxyScript(serviceUrl,
containingControl.Context,
scriptManager.IsDebuggingEnabled);
}
[SuppressMessage("Microsoft.Design", "CA1055:UriReturnValuesShouldNotBeStrings", Justification="Cannot change to URI for compatibility, and yet must also provide this extensibility point.")]
protected internal virtual string GetProxyUrl(ScriptManager scriptManager, Control containingControl) {
return GetServiceUrl(containingControl, true) +
((scriptManager.DesignMode || scriptManager.IsDebuggingEnabled) ?
RestHandlerFactory.ClientDebugProxyRequestPathInfo :
RestHandlerFactory.ClientProxyRequestPathInfo);
}
private string GetServiceUrl(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;
}
internal void Register(Control containingControl, ScriptManager scriptManager) {
if (InlineScript) {
if (!scriptManager.IsRestMethodCall) {
string script = GetProxyScript(scriptManager, containingControl);
if (!String.IsNullOrEmpty(script)) {
scriptManager.RegisterClientScriptBlockInternal(scriptManager, typeof(ScriptManager), script, script, true);
}
}
}
else {
string url = GetProxyUrl(scriptManager, containingControl);
if (!String.IsNullOrEmpty(url)) {
scriptManager.RegisterClientScriptIncludeInternal(scriptManager, typeof(ScriptManager), url, url);
}
}
}
[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.Web;
using System.Web.Compilation;
using System.Web.UI;
using System.Web.Resources;
using System.Web.Script.Services;
[
DefaultProperty("Path")
]
public class ServiceReference {
private string _path;
private bool _inlineScript;
// needed at design time to remember what control owns this service reference (SM or SMP)
internal Control _containingControl;
public ServiceReference() {
}
public ServiceReference(string path) {
// do not use the virtual Path property setter here as it would violate Microsft.Usage:DoNotCallOverridableMethodsInConstructors
// A derived class is not likely to use this constructor anyway -- if they do, and they rely on an overridden Path property,
// they could call the property directly rather than use this constructor.
_path = path;
}
[
ResourceDescription("ServiceReference_InlineScript"),
DefaultValue(false),
Category("Behavior")
]
public virtual bool InlineScript {
get {
return _inlineScript;
}
set {
_inlineScript = value;
}
}
[
ResourceDescription("ServiceReference_Path"),
DefaultValue(""),
Category("Behavior"),
UrlProperty()
]
public virtual string Path {
get {
return _path ?? String.Empty;
}
set {
_path = value;
}
}
protected internal virtual string GetProxyScript(ScriptManager scriptManager, Control containingControl) {
string serviceUrl = GetServiceUrl(containingControl, false);
try {
serviceUrl = VirtualPathUtility.Combine(containingControl.Context.Request.FilePath, serviceUrl);
}
catch {
throw new ArgumentException(
String.Format(CultureInfo.InvariantCulture, AtlasWeb.WebService_InvalidInlineVirtualPath, serviceUrl));
}
return WebServiceClientProxyGenerator.GetInlineClientProxyScript(serviceUrl,
containingControl.Context,
scriptManager.IsDebuggingEnabled);
}
[SuppressMessage("Microsoft.Design", "CA1055:UriReturnValuesShouldNotBeStrings", Justification="Cannot change to URI for compatibility, and yet must also provide this extensibility point.")]
protected internal virtual string GetProxyUrl(ScriptManager scriptManager, Control containingControl) {
return GetServiceUrl(containingControl, true) +
((scriptManager.DesignMode || scriptManager.IsDebuggingEnabled) ?
RestHandlerFactory.ClientDebugProxyRequestPathInfo :
RestHandlerFactory.ClientProxyRequestPathInfo);
}
private string GetServiceUrl(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;
}
internal void Register(Control containingControl, ScriptManager scriptManager) {
if (InlineScript) {
if (!scriptManager.IsRestMethodCall) {
string script = GetProxyScript(scriptManager, containingControl);
if (!String.IsNullOrEmpty(script)) {
scriptManager.RegisterClientScriptBlockInternal(scriptManager, typeof(ScriptManager), script, script, true);
}
}
}
else {
string url = GetProxyUrl(scriptManager, containingControl);
if (!String.IsNullOrEmpty(url)) {
scriptManager.RegisterClientScriptIncludeInternal(scriptManager, typeof(ScriptManager), url, url);
}
}
}
[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
- BinaryWriter.cs
- BrushConverter.cs
- SystemInfo.cs
- ItemsPanelTemplate.cs
- CompleteWizardStep.cs
- WebCategoryAttribute.cs
- CqlErrorHelper.cs
- Journal.cs
- ListBoxAutomationPeer.cs
- SQLInt16.cs
- GcSettings.cs
- LinkLabelLinkClickedEvent.cs
- FillErrorEventArgs.cs
- BindingContext.cs
- TypeDescriptionProviderAttribute.cs
- OdbcEnvironmentHandle.cs
- XmlWrappingReader.cs
- FigureHelper.cs
- Classification.cs
- CriticalHandle.cs
- ResolveResponseInfo.cs
- Stylesheet.cs
- XPathAncestorIterator.cs
- ExpressionBuilderContext.cs
- NetDataContractSerializer.cs
- ConditionalAttribute.cs
- PageVisual.cs
- SafeNativeMethodsCLR.cs
- TableColumn.cs
- ErrorTableItemStyle.cs
- CapacityStreamGeometryContext.cs
- OperationResponse.cs
- _AutoWebProxyScriptHelper.cs
- GridViewDeletedEventArgs.cs
- GridViewPageEventArgs.cs
- DbgUtil.cs
- Propagator.ExtentPlaceholderCreator.cs
- SynchronizedPool.cs
- FileEnumerator.cs
- CompilerLocalReference.cs
- TextDataBindingHandler.cs
- Parameter.cs
- OleDbError.cs
- HtmlImage.cs
- FrugalList.cs
- HttpPostedFile.cs
- FieldAccessException.cs
- ScriptReference.cs
- Size.cs
- SqlDataSourceStatusEventArgs.cs
- LayoutEditorPart.cs
- DetailsViewPageEventArgs.cs
- DetailsViewModeEventArgs.cs
- ConfigurationManager.cs
- DetailsViewInsertedEventArgs.cs
- ResourcePool.cs
- NumericExpr.cs
- FillBehavior.cs
- TextRunProperties.cs
- EncoderNLS.cs
- NewArrayExpression.cs
- WebServiceClientProxyGenerator.cs
- BuildProviderCollection.cs
- StringAnimationUsingKeyFrames.cs
- EventLogEntry.cs
- TCEAdapterGenerator.cs
- CellQuery.cs
- Label.cs
- NumericUpDownAccelerationCollection.cs
- Codec.cs
- ConfigurationValidatorAttribute.cs
- PropertyGeneratedEventArgs.cs
- TextFormatterHost.cs
- WebScriptMetadataMessageEncodingBindingElement.cs
- FormParameter.cs
- login.cs
- DuplexSecurityProtocolFactory.cs
- DataReceivedEventArgs.cs
- InvalidAsynchronousStateException.cs
- CustomErrorsSection.cs
- HttpPostProtocolReflector.cs
- ParentQuery.cs
- SubpageParaClient.cs
- NodeLabelEditEvent.cs
- TreeNodeEventArgs.cs
- Rotation3D.cs
- SimpleNameService.cs
- BufferedOutputStream.cs
- PropertyCollection.cs
- InputReportEventArgs.cs
- TextFormatterImp.cs
- EDesignUtil.cs
- TextTreeUndo.cs
- SafeLibraryHandle.cs
- ContainerVisual.cs
- CompressStream.cs
- DictionaryGlobals.cs
- TextBreakpoint.cs
- Stack.cs
- controlskin.cs