File: System\Runtime\Serialization\CollectionDataContractAttribute.cs
Project: ndp\cdf\src\WCF\Serialization\System.Runtime.Serialization.csproj (System.Runtime.Serialization)
//------------------------------------------------------------
// Copyright (c) Microsoft Corporation.  All rights reserved.
//------------------------------------------------------------
 
namespace System.Runtime.Serialization
{
    [AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct, Inherited = false, AllowMultiple = false)]
    public sealed class CollectionDataContractAttribute : Attribute
    {
        string name;
        string ns;
        string itemName;
        string keyName;
        string valueName;
        bool isReference;
        bool isNameSetExplicitly;
        bool isNamespaceSetExplicitly;
        bool isReferenceSetExplicitly;
        bool isItemNameSetExplicitly;
        bool isKeyNameSetExplicitly;
        bool isValueNameSetExplicitly;
 
        public CollectionDataContractAttribute()
        {
        }
 
        public string Namespace
        {
            get { return ns; }
            set
            {
                ns = value;
                isNamespaceSetExplicitly = true;
            }
        }
 
        public bool IsNamespaceSetExplicitly
        {
            get { return isNamespaceSetExplicitly; }
        }
 
        public string Name
        {
            get { return name; }
            set
            {
                name = value;
                isNameSetExplicitly = true;
            }
        }
 
        public bool IsNameSetExplicitly
        {
            get { return isNameSetExplicitly; }
        }
 
        public string ItemName
        {
            get { return itemName; }
            set
            {
                itemName = value;
                isItemNameSetExplicitly = true;
            }
        }
 
        public bool IsItemNameSetExplicitly
        {
            get { return isItemNameSetExplicitly; }
        }
 
        public string KeyName
        {
            get { return keyName; }
            set
            {
                keyName = value;
                isKeyNameSetExplicitly = true;
            }
        }
 
        public bool IsReference
        {
            get { return isReference; }
            set
            {
                isReference = value;
                isReferenceSetExplicitly = true;
            }
        }
 
        public bool IsReferenceSetExplicitly
        {
            get { return isReferenceSetExplicitly; }
        }
 
        public bool IsKeyNameSetExplicitly
        {
            get { return isKeyNameSetExplicitly; }
        }
 
        public string ValueName
        {
            get { return valueName; }
            set
            {
                valueName = value;
                isValueNameSetExplicitly = true;
            }
        }
 
        public bool IsValueNameSetExplicitly
        {
            get { return isValueNameSetExplicitly; }
        }
 
    }
}