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; ////// /// [AttributeUsage(AttributeTargets.Class | AttributeTargets.Interface)] public sealed class WebServiceAttribute : Attribute { string description; string ns = DefaultNamespace; string name; ///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. ////// /// Initializes a new instance of the public WebServiceAttribute() { } ///class. /// /// /// 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; ////// /// [AttributeUsage(AttributeTargets.Class | AttributeTargets.Interface)] public sealed class WebServiceAttribute : Attribute { string description; string ns = DefaultNamespace; string name; ///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. ////// /// Initializes a new instance of the public WebServiceAttribute() { } ///class. /// /// /// 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
- TaskFileService.cs
- SelectiveScrollingGrid.cs
- Pkcs7Signer.cs
- WsdlInspector.cs
- ThreadStateException.cs
- DrawingContextWalker.cs
- AccessibilityHelperForXpWin2k3.cs
- TextServicesCompartmentEventSink.cs
- SafeBitVector32.cs
- DetailsViewUpdateEventArgs.cs
- SmtpNtlmAuthenticationModule.cs
- QilGenerator.cs
- ReliableReplySessionChannel.cs
- MouseOverProperty.cs
- StreamSecurityUpgradeInitiator.cs
- CollectionBase.cs
- TypeContext.cs
- XmlSchemaInclude.cs
- WebPartConnectionsEventArgs.cs
- Rect3D.cs
- PerformanceCounterCategory.cs
- DesigntimeLicenseContextSerializer.cs
- TypeDescriptionProviderAttribute.cs
- SerializationSectionGroup.cs
- ComponentEvent.cs
- OperationSelectorBehavior.cs
- FormViewDeletedEventArgs.cs
- SelectionEditingBehavior.cs
- SoapObjectWriter.cs
- DependencySource.cs
- GZipDecoder.cs
- CompiledRegexRunner.cs
- ResourceDefaultValueAttribute.cs
- AnimationTimeline.cs
- Path.cs
- LongValidatorAttribute.cs
- FindProgressChangedEventArgs.cs
- XmlNamedNodeMap.cs
- Literal.cs
- ComMethodElementCollection.cs
- DecoratedNameAttribute.cs
- MaskedTextBoxTextEditor.cs
- PropertySegmentSerializationProvider.cs
- AsyncDataRequest.cs
- PopupEventArgs.cs
- StylusButton.cs
- WindowsAltTab.cs
- MenuItem.cs
- Speller.cs
- HttpModuleActionCollection.cs
- ConfigUtil.cs
- DynamicRenderer.cs
- EdmItemCollection.cs
- MimeFormImporter.cs
- DeclarationUpdate.cs
- ButtonColumn.cs
- Empty.cs
- AudioBase.cs
- SchemaAttDef.cs
- DocumentPageView.cs
- DataGridViewDataConnection.cs
- RightNameExpirationInfoPair.cs
- WeakRefEnumerator.cs
- NetworkStream.cs
- FormViewInsertedEventArgs.cs
- PersonalizationProvider.cs
- BoolExpr.cs
- PolyBezierSegment.cs
- XmlSchemaGroupRef.cs
- RemotingAttributes.cs
- SettingsPropertyValueCollection.cs
- PropertyTabAttribute.cs
- SafePEFileHandle.cs
- SqlDataSourceStatusEventArgs.cs
- StatusBarItemAutomationPeer.cs
- PixelFormats.cs
- TypeLoader.cs
- AvTrace.cs
- InfocardClientCredentials.cs
- ObjectDataProvider.cs
- PagedDataSource.cs
- SourceFileBuildProvider.cs
- DrawingAttributes.cs
- EmptyStringExpandableObjectConverter.cs
- ConfigurationManagerInternalFactory.cs
- TypeAccessException.cs
- HttpProfileBase.cs
- TraceLevelHelper.cs
- SessionEndingEventArgs.cs
- HtmlElementCollection.cs
- DynamicQueryableWrapper.cs
- xmlsaver.cs
- ListControlDataBindingHandler.cs
- OrderedDictionary.cs
- _RequestLifetimeSetter.cs
- SqlDataReaderSmi.cs
- XmlReflectionImporter.cs
- GregorianCalendarHelper.cs
- ThicknessAnimationUsingKeyFrames.cs
- ToolStripStatusLabel.cs