// 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); }
//------------------------------------------------------------ // 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); }