Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Services / Web / System / Web / Services / WebServiceAttribute.cs / 1305376 / WebServiceAttribute.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Web.Services {
using System;
using System.Web.Services.Protocols;
///
///
/// The WebService attribute may be used to add additional information to a
/// Web Service, such as a string describing its functionality. The attribute is not required for a Web Service to
/// be published and executed.
///
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Interface)]
public sealed class WebServiceAttribute : Attribute {
string description;
string ns = DefaultNamespace;
string name;
///
///
/// Initializes a new instance of the class.
///
public WebServiceAttribute() {
}
///
///
/// A descriptive message for the Web Service. The message
/// is used when generating description documents for the Web Service, such as the
/// Sevice Contract and the Service Description page.
///
public string Description {
get {
return (description == null) ? string.Empty : description;
}
set {
description = value;
}
}
///
///
/// The default XML namespace to use for the web service.
///
public string Namespace {
get {
return ns;
}
set {
ns = value;
}
}
///
///
/// The name to use for the web service in the service description.
///
public string Name {
get {
return name == null ? string.Empty : name;
}
set {
name = value;
}
}
///
///
/// The default value for the XmlNamespace property.
///
public const string DefaultNamespace = "http://tempuri.org/";
}
internal class WebServiceReflector {
private WebServiceReflector() {}
internal static WebServiceAttribute GetAttribute(Type type) {
object[] attrs = type.GetCustomAttributes(typeof(WebServiceAttribute), false);
if (attrs.Length == 0) return new WebServiceAttribute();
return (WebServiceAttribute)attrs[0];
}
internal static WebServiceAttribute GetAttribute(LogicalMethodInfo[] methodInfos) {
if (methodInfos.Length == 0) return new WebServiceAttribute();
Type mostDerived = GetMostDerivedType(methodInfos);
return GetAttribute(mostDerived);
}
internal static Type GetMostDerivedType(LogicalMethodInfo[] methodInfos) {
if (methodInfos.Length == 0) return null;
Type mostDerived = methodInfos[0].DeclaringType;
for (int i = 1; i < methodInfos.Length; i++) {
Type derived = methodInfos[i].DeclaringType;
if (derived.IsSubclassOf(mostDerived)) {
mostDerived = derived;
}
}
return mostDerived;
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Web.Services {
using System;
using System.Web.Services.Protocols;
///
///
/// The WebService attribute may be used to add additional information to a
/// Web Service, such as a string describing its functionality. The attribute is not required for a Web Service to
/// be published and executed.
///
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Interface)]
public sealed class WebServiceAttribute : Attribute {
string description;
string ns = DefaultNamespace;
string name;
///
///
/// Initializes a new instance of the class.
///
public WebServiceAttribute() {
}
///
///
/// A descriptive message for the Web Service. The message
/// is used when generating description documents for the Web Service, such as the
/// Sevice Contract and the Service Description page.
///
public string Description {
get {
return (description == null) ? string.Empty : description;
}
set {
description = value;
}
}
///
///
/// The default XML namespace to use for the web service.
///
public string Namespace {
get {
return ns;
}
set {
ns = value;
}
}
///
///
/// The name to use for the web service in the service description.
///
public string Name {
get {
return name == null ? string.Empty : name;
}
set {
name = value;
}
}
///
///
/// The default value for the XmlNamespace property.
///
public const string DefaultNamespace = "http://tempuri.org/";
}
internal class WebServiceReflector {
private WebServiceReflector() {}
internal static WebServiceAttribute GetAttribute(Type type) {
object[] attrs = type.GetCustomAttributes(typeof(WebServiceAttribute), false);
if (attrs.Length == 0) return new WebServiceAttribute();
return (WebServiceAttribute)attrs[0];
}
internal static WebServiceAttribute GetAttribute(LogicalMethodInfo[] methodInfos) {
if (methodInfos.Length == 0) return new WebServiceAttribute();
Type mostDerived = GetMostDerivedType(methodInfos);
return GetAttribute(mostDerived);
}
internal static Type GetMostDerivedType(LogicalMethodInfo[] methodInfos) {
if (methodInfos.Length == 0) return null;
Type mostDerived = methodInfos[0].DeclaringType;
for (int i = 1; i < methodInfos.Length; i++) {
Type derived = methodInfos[i].DeclaringType;
if (derived.IsSubclassOf(mostDerived)) {
mostDerived = derived;
}
}
return mostDerived;
}
}
}
// 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
- CatalogPart.cs
- DataTableReader.cs
- WindowsTitleBar.cs
- LocalizableAttribute.cs
- SystemIPAddressInformation.cs
- ActivationServices.cs
- WebPartZoneBase.cs
- EntityContainerEmitter.cs
- PeerObject.cs
- CollectionViewGroup.cs
- DataGridViewAdvancedBorderStyle.cs
- Win32SafeHandles.cs
- LockedBorderGlyph.cs
- templategroup.cs
- DataTableClearEvent.cs
- ContentType.cs
- ProtocolsConfigurationEntry.cs
- VirtualPathProvider.cs
- ObjectFullSpanRewriter.cs
- ToolStripDropDown.cs
- ellipse.cs
- SQLStringStorage.cs
- SystemIPGlobalProperties.cs
- AliasedSlot.cs
- ZipIORawDataFileBlock.cs
- ValidationSummary.cs
- SafeNativeMethods.cs
- WorkflowInvoker.cs
- EntityDataSource.cs
- filewebresponse.cs
- ConfigurationProperty.cs
- Switch.cs
- CaseInsensitiveHashCodeProvider.cs
- OutputCacheSettingsSection.cs
- TextParagraphProperties.cs
- AssemblyCache.cs
- CodeGroup.cs
- SessionStateUtil.cs
- columnmapfactory.cs
- StringAnimationBase.cs
- ConnectionManagementElement.cs
- PropertyChangedEventArgs.cs
- ObfuscateAssemblyAttribute.cs
- SqlMetaData.cs
- ScriptReferenceEventArgs.cs
- ConnectionsZoneDesigner.cs
- SafeCoTaskMem.cs
- BitmapEffectGroup.cs
- WSSecurityOneDotZeroSendSecurityHeader.cs
- MetafileHeaderEmf.cs
- Quad.cs
- DurableRuntimeValidator.cs
- HtmlTableRowCollection.cs
- Panel.cs
- BaseCodeDomTreeGenerator.cs
- ActiveXMessageFormatter.cs
- AppDomainManager.cs
- ColorConverter.cs
- DeploymentSection.cs
- Privilege.cs
- WebPartEditorApplyVerb.cs
- InheritanceAttribute.cs
- DropDownButton.cs
- SetterBase.cs
- Camera.cs
- QilInvoke.cs
- MenuItemStyle.cs
- DashStyles.cs
- XmlSchemaObjectTable.cs
- SchemaImporterExtensionsSection.cs
- ZipPackagePart.cs
- SelectedDatesCollection.cs
- RowBinding.cs
- XmlSchemaValidationException.cs
- SQLMembershipProvider.cs
- StructuralType.cs
- OptimizerPatterns.cs
- ISFTagAndGuidCache.cs
- WindowsIPAddress.cs
- nulltextcontainer.cs
- ToolStripDropDownItem.cs
- SectionXmlInfo.cs
- BaseUriHelper.cs
- ActivityXRefConverter.cs
- HttpClientCertificate.cs
- TextEffectResolver.cs
- CodeTypeMember.cs
- RtType.cs
- TextServicesCompartmentEventSink.cs
- Publisher.cs
- SplitterPanel.cs
- ExpressionLexer.cs
- PageFunction.cs
- FacetValueContainer.cs
- ArcSegment.cs
- DependencyPropertyKind.cs
- TreeViewImageKeyConverter.cs
- SqlGenericUtil.cs
- LogicalExpressionTypeConverter.cs
- SafeTimerHandle.cs