DataServiceKeyAttribute.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / DataWeb / Client / System / Data / Services / Client / DataServiceKeyAttribute.cs / 1305376 / DataServiceKeyAttribute.cs

                            //---------------------------------------------------------------------- 
// 
//      Copyright (c) Microsoft Corporation.  All rights reserved.
// 
//  
//      Clr Attribute to be annotated on key properties
//  
// 
// @owner  [....], [....]
//--------------------------------------------------------------------- 
namespace System.Data.Services.Common
{
    using System;
    using System.Collections.ObjectModel; 
    using System.Data.Services.Client;
    using System.Linq; 
 
    /// 
    /// Attribute to be annotated on key properties 
    /// 
    [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1019:DefineAccessorsForAttributeArguments", Justification = "Accessors are available for processed input.")]
    [AttributeUsage(AttributeTargets.Class, AllowMultiple = false)]
    public sealed class DataServiceKeyAttribute : System.Attribute 
    {
        /// Name of the properties that form the key. 
        private readonly ReadOnlyCollection keyNames; 

        ///  
        /// Initializes a new instance of DataServiceKey attribute with the property name
        /// that forms the Key.
        /// 
        /// Name of the property that form the key for the current type. 
        public DataServiceKeyAttribute(string keyName)
        { 
            Util.CheckArgumentNull(keyName, "keyName"); 
            Util.CheckArgumentNotEmpty(keyName, "KeyName");
            this.keyNames = new ReadOnlyCollection(new string[1] { keyName }); 
        }

        /// 
        /// Initializes a new instance of DataServiceKey attribute with the list of property names 
        /// that form the key.
        ///  
        /// Name of the properties that form the key for the current type. 
        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1062:Validate arguments of public methods", MessageId = "0", Justification = "parameters are validated against null via CheckArgumentNull")]
        public DataServiceKeyAttribute(params string[] keyNames) 
        {
            Util.CheckArgumentNull(keyNames, "keyNames");
            if (keyNames.Length == 0 || keyNames.Any(f => f == null || f.Length == 0))
            { 
                throw Error.Argument(Strings.DSKAttribute_MustSpecifyAtleastOnePropertyName, "keyNames");
            } 
 
            this.keyNames = new ReadOnlyCollection(keyNames);
        } 

        /// Name of the properties that form the key for the current type.
        public ReadOnlyCollection KeyNames
        { 
            get
            { 
                return this.keyNames; 
            }
        } 
    }
}

// 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