internal static void PrintTypeItemContent(NfTypeNameParseItem item, int count) { Console.WriteLine($"{new string('\t', count)}{item.FullName}"); Console.WriteLine($"{new string('\t', count)}{item.AssemblyFullName}"); Console.WriteLine($"{new string('\t', count)}{item.GenericCounter}"); if (item.GenericItems == null) { return; } foreach (var typeNameParseItem in item.GenericItems) { PrintTypeItemContent(typeNameParseItem, count + 1); } }
internal void ConvertToCs(NfTypeNameParseItem tnpi, StringBuilder bldr) { bldr = bldr ?? new StringBuilder(); if (tnpi == null) { return; } var fname = tnpi.FullName; if (ValueTypeToLangAlias.ContainsKey(fname)) { fname = ValueTypeToLangAlias[fname]; } bldr.Append(fname); var hasGenCounter = tnpi.GenericCounter != null && tnpi.GenericCounter > 0; var hasGenericItems = tnpi.GenericItems != null && tnpi.GenericItems.Any(); if (!hasGenCounter && !hasGenericItems) { return; } if (hasGenCounter && !hasGenericItems) { bldr.Append($"<{new string(',', tnpi.GenericCounter.Value - 1)}>"); return; } var genericItemsCs = new List <string>(); foreach (var typeNameParseItem in tnpi.GenericItems) { var iBldr = new StringBuilder(); ConvertToCs(typeNameParseItem, iBldr); genericItemsCs.Add(iBldr.ToString()); } if (!genericItemsCs.Any()) { return; } bldr.Append("<"); bldr.Append(string.Join(",", genericItemsCs)); bldr.Append(">"); }
internal NfTypeName(NfTypeNameParseItem parseItem) { if (parseItem == null) { return; } _className = NfReflect.GetTypeNameWithoutNamespace(parseItem.FullName); _namespace = NfReflect.GetNamespaceWithoutTypeName(parseItem.FullName); _publicKeyToken = parseItem.PublicKeyTokenValue; if (!string.IsNullOrWhiteSpace(parseItem.AssemblyFullName)) { _asmName = new AssemblyName(parseItem.AssemblyFullName); } if (parseItem.GenericItems == null || !parseItem.GenericItems.Any()) { return; } foreach (var gi in parseItem.GenericItems) { _genericArgs.Add(new NfTypeName(gi)); } }