ETagAttribute.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / DataWeb / Server / System / Data / Services / ETagAttribute.cs / 1305376 / ETagAttribute.cs

                            //---------------------------------------------------------------------- 
// 
//      Copyright (c) Microsoft Corporation.  All rights reserved.
// 
//  
//      CLR attribute to be annotated on types which indicate the list of properties
//      form the ETag. 
//  
//
// @owner  [....] 
//---------------------------------------------------------------------

namespace System.Data.Services
{ 
    using System;
    using System.Collections.Generic; 
    using System.Collections.ObjectModel; 

    /// Attribute to be annotated on types with ETags. 
    [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1019:DefineAccessorsForAttributeArguments", Justification = "Processed value is available")]
    [AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = true)]
    public sealed class ETagAttribute : System.Attribute
    { 
        /// Name of the properties that form the ETag.
        private readonly ReadOnlyCollection propertyNames; 
 
        // This constructor was added since string[] is not a CLS-compliant type and
        // compiler gives a warning as error saying this attribute doesn't have any 
        // constructor that takes CLS-compliant type

        /// 
        /// Initializes a new instance of ETag attribute with the property name 
        /// that forms the ETag.
        ///  
        /// Name of the property that form the ETag for the current type. 
        public ETagAttribute(string propertyName)
        { 
            WebUtil.CheckArgumentNull(propertyName, "propertyName");
            this.propertyNames = new ReadOnlyCollection(new List(new string[1] { propertyName }));
        }
 
        /// 
        /// Initializes a new instance of ETag attribute with the list of property names 
        /// that form the ETag. 
        /// 
        /// Name of the properties that form the ETag for the current type. 
        public ETagAttribute(params string[] propertyNames)
        {
            WebUtil.CheckArgumentNull(propertyNames, "propertyNames");
            if (propertyNames.Length == 0) 
            {
                throw new ArgumentException(Strings.ETagAttribute_MustSpecifyAtleastOnePropertyName, "propertyNames"); 
            } 

            this.propertyNames = new ReadOnlyCollection(new List(propertyNames)); 
        }

        /// Name of the properties that form the ETag for the current type.
        public ReadOnlyCollection PropertyNames 
        {
            get 
            { 
                return this.propertyNames;
            } 
        }
    }
}

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//---------------------------------------------------------------------- 
// 
//      Copyright (c) Microsoft Corporation.  All rights reserved.
// 
//  
//      CLR attribute to be annotated on types which indicate the list of properties
//      form the ETag. 
//  
//
// @owner  [....] 
//---------------------------------------------------------------------

namespace System.Data.Services
{ 
    using System;
    using System.Collections.Generic; 
    using System.Collections.ObjectModel; 

    /// Attribute to be annotated on types with ETags. 
    [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1019:DefineAccessorsForAttributeArguments", Justification = "Processed value is available")]
    [AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = true)]
    public sealed class ETagAttribute : System.Attribute
    { 
        /// Name of the properties that form the ETag.
        private readonly ReadOnlyCollection propertyNames; 
 
        // This constructor was added since string[] is not a CLS-compliant type and
        // compiler gives a warning as error saying this attribute doesn't have any 
        // constructor that takes CLS-compliant type

        /// 
        /// Initializes a new instance of ETag attribute with the property name 
        /// that forms the ETag.
        ///  
        /// Name of the property that form the ETag for the current type. 
        public ETagAttribute(string propertyName)
        { 
            WebUtil.CheckArgumentNull(propertyName, "propertyName");
            this.propertyNames = new ReadOnlyCollection(new List(new string[1] { propertyName }));
        }
 
        /// 
        /// Initializes a new instance of ETag attribute with the list of property names 
        /// that form the ETag. 
        /// 
        /// Name of the properties that form the ETag for the current type. 
        public ETagAttribute(params string[] propertyNames)
        {
            WebUtil.CheckArgumentNull(propertyNames, "propertyNames");
            if (propertyNames.Length == 0) 
            {
                throw new ArgumentException(Strings.ETagAttribute_MustSpecifyAtleastOnePropertyName, "propertyNames"); 
            } 

            this.propertyNames = new ReadOnlyCollection(new List(propertyNames)); 
        }

        /// Name of the properties that form the ETag for the current type.
        public ReadOnlyCollection PropertyNames 
        {
            get 
            { 
                return this.propertyNames;
            } 
        }
    }
}

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
                        

Link Menu

Network programming in C#, Network Programming in VB.NET, Network Programming in .NET
This book is available now!
Buy at Amazon US or
Buy at Amazon UK