示例#1
0
        // Instance methods.

        //------------------------------------------------------------
        // MetaDataHelper.GetMetaDataName (1) instance method
        //
        /// <summary>
        /// Returns a class/type name as it should appear in metadata
        /// Basically the same as GetFullName except inner classes
        /// are NOT qualified by their outer class or namespace
        /// </summary>
        /// <param name="bagSym"></param>
        /// <param name="builder"></param>
        //------------------------------------------------------------
        internal void GetMetaDataName(BAGSYM bagSym, StringBuilder builder)
        {
            DebugUtil.Assert(bagSym != null);

            // Special case -- the root namespace.
            if (bagSym.ParentSym == null)
            {
                // At the root namespace.
                return;
            }

            BAGSYM parentBagSym = bagSym.ParentSym as BAGSYM;

            // If Our parent isn't the root or an outer type,
            // get the parent name and seperator and advance beyond it.
            if (parentBagSym is NSSYM && parentBagSym.ParentSym != null)
            {
                GetMetaDataName(parentBagSym, builder);
                builder.Append('.');
            }

            // Get the current name and add it on
            builder.Append(bagSym.Name);

            EscapeSpecialChars(builder);
            GetTypeVars(bagSym, builder, null);
        }
示例#2
0
        //------------------------------------------------------------
        // MetaDataHelper.GetMetaDataName (2) static method
        //
        /// <summary>
        /// <para>Return the name of class or type which appears in the metadata.</para>
        /// <para>Call the instance method GetMetaDataName.</para>
        /// </summary>
        /// <param name="bagSym"></param>
        /// <param name="name"></param>
        /// <returns></returns>
        //------------------------------------------------------------
        internal static bool GetMetaDataName(BAGSYM bagSym, out string name)
        {
            MetaDataHelper help = new MetaDataHelper();
            StringBuilder  sb   = new StringBuilder();

            help.GetMetaDataName(bagSym, sb);
            name = sb.ToString();
            return(true);
        }