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
- DataRelationCollection.cs
- TargetInvocationException.cs
- FramingDecoders.cs
- mediapermission.cs
- WebResourceAttribute.cs
- ThreadInterruptedException.cs
- DbExpressionVisitor.cs
- sqlstateclientmanager.cs
- LookupNode.cs
- XmlStreamNodeWriter.cs
- CodeBinaryOperatorExpression.cs
- Point3DCollection.cs
- BamlLocalizer.cs
- EventManager.cs
- StandardCommands.cs
- ApplicationServicesHostFactory.cs
- CqlIdentifiers.cs
- DockingAttribute.cs
- ListViewGroupCollectionEditor.cs
- FontStretch.cs
- StatusBarAutomationPeer.cs
- ISAPIWorkerRequest.cs
- TabRenderer.cs
- PageCatalogPart.cs
- ToolStripItem.cs
- ClientRolePrincipal.cs
- ControlParameter.cs
- RankException.cs
- StaticFileHandler.cs
- SiteMap.cs
- IndexedEnumerable.cs
- DbParameterCollection.cs
- Operator.cs
- ListBoxItemAutomationPeer.cs
- TripleDES.cs
- DataGridViewEditingControlShowingEventArgs.cs
- DocumentPageHost.cs
- HttpCacheVary.cs
- XamlToRtfWriter.cs
- XmlNode.cs
- EntityUtil.cs
- UnsafeNativeMethods.cs
- PagePropertiesChangingEventArgs.cs
- PopOutPanel.cs
- KeyFrames.cs
- InternalCache.cs
- EntityDataSourceWrapperPropertyDescriptor.cs
- SvcMapFileLoader.cs
- ProviderConnectionPointCollection.cs
- ProgressBarRenderer.cs
- RepeatBehaviorConverter.cs
- ParallelSeparator.xaml.cs
- CharEnumerator.cs
- Geometry3D.cs
- StandardRuntimeEnumValidatorAttribute.cs
- SingleObjectCollection.cs
- NetworkCredential.cs
- SecurityBindingElementImporter.cs
- PackWebResponse.cs
- MobileUserControlDesigner.cs
- Size3D.cs
- StateBag.cs
- RegexNode.cs
- Light.cs
- MSAAWinEventWrap.cs
- DropDownList.cs
- BitStream.cs
- SetUserPreferenceRequest.cs
- ActiveXContainer.cs
- SafeNativeMethods.cs
- LinkDescriptor.cs
- UnsafePeerToPeerMethods.cs
- COM2IDispatchConverter.cs
- ControlPropertyNameConverter.cs
- Root.cs
- LinkLabelLinkClickedEvent.cs
- DataGridViewColumnHeaderCell.cs
- HostedHttpTransportManager.cs
- SafeBitVector32.cs
- LinkButton.cs
- StronglyTypedResourceBuilder.cs
- ListenerElementsCollection.cs
- Transform3DGroup.cs
- TextTreeTextBlock.cs
- SQLResource.cs
- DataGrid.cs
- ArrayTypeMismatchException.cs
- ImageIndexConverter.cs
- StrokeNode.cs
- ServiceHostingEnvironment.cs
- MailMessage.cs
- WpfWebRequestHelper.cs
- DataSpaceManager.cs
- StackOverflowException.cs
- RemotingAttributes.cs
- ContextStaticAttribute.cs
- DesignerCalendarAdapter.cs
- NamedPipeAppDomainProtocolHandler.cs
- Thumb.cs
- Parsers.cs