File: System\Runtime\Serialization\ContractCodeDomInfo.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
{
    using System;
    using System.Xml;
    using System.Xml.Schema;
    using System.CodeDom;
    using System.Collections.Generic;
 
    internal class ContractCodeDomInfo
    {
        internal bool IsProcessed;
        internal CodeTypeDeclaration TypeDeclaration;
        internal CodeTypeReference TypeReference;
        internal CodeNamespace CodeNamespace;
        internal bool ReferencedTypeExists;
        internal bool UsesWildcardNamespace;
        string clrNamespace;
        Dictionary<string, object> memberNames;
 
        internal string ClrNamespace
        {
            get { return (ReferencedTypeExists ? null : clrNamespace); }
            set
            {
                if (ReferencedTypeExists)
                    throw System.Runtime.Serialization.DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString(SR.CannotSetNamespaceForReferencedType, TypeReference.BaseType)));
                else
                    clrNamespace = value;
            }
        }
 
        internal Dictionary<string, object> GetMemberNames()
        {
            if (ReferencedTypeExists)
                throw System.Runtime.Serialization.DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString(SR.CannotSetMembersForReferencedType, TypeReference.BaseType)));
            else
            {
                if (memberNames == null)
                {
                    memberNames = new Dictionary<string, object>(StringComparer.OrdinalIgnoreCase);
                }
                return memberNames;
            }
        }
    }
}