Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- OperationInvokerBehavior.cs
- MenuItem.cs
- EntityDataSourceContextDisposingEventArgs.cs
- OperandQuery.cs
- OleDbTransaction.cs
- AttributeSetAction.cs
- NetworkInformationException.cs
- DropTarget.cs
- RectIndependentAnimationStorage.cs
- precedingsibling.cs
- ListViewUpdateEventArgs.cs
- Memoizer.cs
- SelectionItemProviderWrapper.cs
- AspCompat.cs
- WindowsToolbar.cs
- PointLight.cs
- FormViewInsertEventArgs.cs
- ApplicationSecurityManager.cs
- BaseResourcesBuildProvider.cs
- LinkLabelLinkClickedEvent.cs
- SafeHandles.cs
- ConstrainedGroup.cs
- AutomationPatternInfo.cs
- SynchronizationLockException.cs
- BamlLocalizabilityResolver.cs
- SHA512.cs
- DispatchWrapper.cs
- FrameworkTemplate.cs
- ContextConfiguration.cs
- LogStore.cs
- HostExecutionContextManager.cs
- XmlWrappingReader.cs
- SequentialWorkflowRootDesigner.cs
- StylusPoint.cs
- SimpleWebHandlerParser.cs
- ContextStaticAttribute.cs
- cache.cs
- DocumentAutomationPeer.cs
- SizeAnimationBase.cs
- AuthenticationConfig.cs
- MouseDevice.cs
- Ref.cs
- HitTestDrawingContextWalker.cs
- Visual3D.cs
- NameValuePair.cs
- ConfigurationElementCollection.cs
- ColorConvertedBitmapExtension.cs
- HtmlUtf8RawTextWriter.cs
- SoapConverter.cs
- TextCompositionEventArgs.cs
- QueryContinueDragEvent.cs
- XmlSchemaDatatype.cs
- MissingSatelliteAssemblyException.cs
- SecurityCriticalDataForSet.cs
- ChainOfDependencies.cs
- ConfigXmlAttribute.cs
- ComponentRenameEvent.cs
- PerformanceCounterNameAttribute.cs
- SqlTypeSystemProvider.cs
- Main.cs
- Table.cs
- RayHitTestParameters.cs
- UiaCoreApi.cs
- XmlCompatibilityReader.cs
- UnsignedPublishLicense.cs
- CompModSwitches.cs
- SiteMapDataSource.cs
- GridViewDeletedEventArgs.cs
- PrimitiveType.cs
- SqlAggregateChecker.cs
- EmptyEnumerator.cs
- ListMarkerLine.cs
- CodeMethodInvokeExpression.cs
- WebResourceAttribute.cs
- SystemIcmpV6Statistics.cs
- DrawToolTipEventArgs.cs
- Debug.cs
- NonPrimarySelectionGlyph.cs
- ConfigurationStrings.cs
- SaveFileDialogDesigner.cs
- StreamGeometry.cs
- GridViewRowCollection.cs
- XPathChildIterator.cs
- CalendarData.cs
- DebugInfo.cs
- RegexCode.cs
- GridViewSortEventArgs.cs
- TextTreeNode.cs
- CodeAttributeDeclarationCollection.cs
- DataObjectAttribute.cs
- CachedPathData.cs
- ErrorHandlerModule.cs
- SspiSecurityTokenParameters.cs
- IISUnsafeMethods.cs
- Brush.cs
- AutomationEvent.cs
- AuthenticationSection.cs
- QueryOutputWriter.cs
- CredentialManagerDialog.cs
- InfoCardUIAgent.cs