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
- WinFormsUtils.cs
- GenerateTemporaryTargetAssembly.cs
- UdpTransportSettingsElement.cs
- MatrixTransform3D.cs
- NegotiateStream.cs
- MsmqIntegrationBindingCollectionElement.cs
- SHA1.cs
- DocumentSequenceHighlightLayer.cs
- cookiecollection.cs
- Int64AnimationBase.cs
- DateTimeOffsetAdapter.cs
- FilteredXmlReader.cs
- BitmapImage.cs
- TextParagraphView.cs
- cookiecollection.cs
- Span.cs
- PersonalizationState.cs
- AsymmetricAlgorithm.cs
- PerformanceCounterLib.cs
- FileInfo.cs
- StylusPointCollection.cs
- FtpRequestCacheValidator.cs
- RangeBase.cs
- XamlGridLengthSerializer.cs
- OleDbWrapper.cs
- RankException.cs
- Figure.cs
- WorkflowServiceHostFactory.cs
- SqlDataReader.cs
- EditorPart.cs
- HebrewCalendar.cs
- HttpStreamXmlDictionaryWriter.cs
- CustomAssemblyResolver.cs
- WSFederationHttpBinding.cs
- _NativeSSPI.cs
- OutputScopeManager.cs
- Selector.cs
- PropertyDescriptorGridEntry.cs
- UshortList2.cs
- ContextMenuStripGroupCollection.cs
- CodeNamespaceImport.cs
- XsltLibrary.cs
- WebRequest.cs
- Cursor.cs
- SpinLock.cs
- GridViewColumn.cs
- ResourceSet.cs
- OleDbWrapper.cs
- SqlConnectionHelper.cs
- MimeBasePart.cs
- SafeCloseHandleCritical.cs
- StylusPointDescription.cs
- Imaging.cs
- GridViewRowEventArgs.cs
- UriWriter.cs
- CompilerCollection.cs
- SimpleWebHandlerParser.cs
- SecurityUtils.cs
- FontDifferentiator.cs
- StateMachineWorkflowInstance.cs
- complextypematerializer.cs
- ServiceProviders.cs
- ZipFileInfoCollection.cs
- DataGridViewRowErrorTextNeededEventArgs.cs
- InstanceDataCollection.cs
- SequenceFullException.cs
- ServiceBuildProvider.cs
- InvalidCommandTreeException.cs
- Math.cs
- XmlMtomWriter.cs
- EmptyQuery.cs
- ServiceDebugBehavior.cs
- ResourceKey.cs
- WindowsStartMenu.cs
- XPathParser.cs
- PageRanges.cs
- StringArrayConverter.cs
- ValidatedMobileControlConverter.cs
- MultiTrigger.cs
- SafeRightsManagementQueryHandle.cs
- TargetControlTypeCache.cs
- _SecureChannel.cs
- DesignerHelpers.cs
- WrapPanel.cs
- CallbackValidator.cs
- TextWriterTraceListener.cs
- Point.cs
- JsonReader.cs
- GlobalizationSection.cs
- Context.cs
- CustomTypeDescriptor.cs
- StorageTypeMapping.cs
- BaseDataListActionList.cs
- ListMarkerLine.cs
- SuppressIldasmAttribute.cs
- ExecutorLocksHeldException.cs
- CompoundFileIOPermission.cs
- XmlSchemaComplexContentRestriction.cs
- LoginViewDesigner.cs
- EndpointAddressMessageFilter.cs