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
- XmlWellformedWriter.cs
- CounterCreationData.cs
- PackUriHelper.cs
- MenuItemAutomationPeer.cs
- Codec.cs
- TogglePattern.cs
- ResourcesBuildProvider.cs
- RepeatButtonAutomationPeer.cs
- ToolStripItemImageRenderEventArgs.cs
- TogglePattern.cs
- ImageButton.cs
- CardSpacePolicyElement.cs
- DependencyPropertyConverter.cs
- PreloadedPackages.cs
- Logging.cs
- ViewSimplifier.cs
- SafeThreadHandle.cs
- TableNameAttribute.cs
- DefaultValueAttribute.cs
- ListView.cs
- HttpCacheVaryByContentEncodings.cs
- ServiceMoniker.cs
- MsmqHostedTransportManager.cs
- SpeakInfo.cs
- Package.cs
- JavaScriptSerializer.cs
- XmlEnumAttribute.cs
- Utility.cs
- Unit.cs
- HttpWebRequest.cs
- CalendarDay.cs
- DbDataAdapter.cs
- Point3DCollectionConverter.cs
- X509ChainPolicy.cs
- PropertyInfoSet.cs
- PageCodeDomTreeGenerator.cs
- XPathNavigator.cs
- ErrorWebPart.cs
- DataGridColumnCollection.cs
- Table.cs
- ArithmeticLiteral.cs
- LinkedResourceCollection.cs
- Int16.cs
- WSAddressing10ProblemHeaderQNameFault.cs
- Adorner.cs
- DataSourceView.cs
- XMLSchema.cs
- DataGridLinkButton.cs
- InternalTypeHelper.cs
- TextTreeInsertElementUndoUnit.cs
- ProcessModuleCollection.cs
- QueryableDataSourceView.cs
- SingleAnimation.cs
- DetailsViewDeletedEventArgs.cs
- AccessKeyManager.cs
- SqlStatistics.cs
- QueueProcessor.cs
- PathFigureCollection.cs
- DefaultCompensation.cs
- documentation.cs
- StyleCollection.cs
- CompatibleComparer.cs
- EventHandlingScope.cs
- Crypto.cs
- SHA384.cs
- ValueSerializer.cs
- CodeBlockBuilder.cs
- DecimalAverageAggregationOperator.cs
- MimeMapping.cs
- CodeSubDirectory.cs
- InkCanvasAutomationPeer.cs
- ConfigXmlCDataSection.cs
- CursorInteropHelper.cs
- ConfigXmlElement.cs
- Dynamic.cs
- KeyGestureValueSerializer.cs
- RecognitionEventArgs.cs
- RequestChannel.cs
- ConfigurationElementProperty.cs
- ManagementException.cs
- COM2IProvidePropertyBuilderHandler.cs
- SHA512Managed.cs
- SubclassTypeValidator.cs
- WithParamAction.cs
- ProfilePropertySettingsCollection.cs
- ImageSourceValueSerializer.cs
- DefaultWorkflowSchedulerService.cs
- HttpFileCollectionWrapper.cs
- SystemEvents.cs
- WinFormsComponentEditor.cs
- State.cs
- PrimitiveCodeDomSerializer.cs
- MultipartContentParser.cs
- PKCS1MaskGenerationMethod.cs
- CommonDialog.cs
- SpecularMaterial.cs
- xmlglyphRunInfo.cs
- Overlapped.cs
- OledbConnectionStringbuilder.cs
- DataTableCollection.cs