コード例 #1
0
        public ReferenceTypeTester TestReferenceTypeWithName(string name, int?typeArgCnt = null)
        {
            ExtractedReferenceType extrType = _typeCollection.GetReferenceTypes()
                                              .Where(type => type.NamedType.Name == name && (!typeArgCnt.HasValue || typeArgCnt.Value == type.NamedType.TypeArguments.Count))
                                              .FirstOrDefault() as ExtractedReferenceType;

            return(new ReferenceTypeTester(extrType, _typeFormatter));
        }
コード例 #2
0
        /// <summary>
        /// Formats a name declaration
        /// </summary>
        /// <param name="refType"></param>
        /// <returns></returns>
        public override string FormatNamedTypeDeclaration(ExtractedReferenceType refType)
        {
            // Create the type name appending the number of type arguments if there are duplicate names
            string name;

            if (NameCountIndex[GetIndexName(refType)] > 1 && refType.NamedType.TypeArguments.Count > 0)
            {
                name = $"{refType.Name}_{refType.NamedType.TypeArguments.Count}";
            }
            else
            {
                name = refType.Name;
            }


            if (refType.NamedType.TypeArguments.Count > 0)
            {
                name += $"<{string.Join(", ", refType.NamedType.TypeArguments.Select(arg => arg.Name))}>";
            }
            return(name);
        }
コード例 #3
0
 private string GetIndexName(ExtractedReferenceType refType)
 {
     return($"{_resolver.GetPrefix(refType)}.{refType.Name}");
 }
コード例 #4
0
 public ReferenceTypeTester(ExtractedReferenceType scriptClass, TypeFormatter typeFormatter)
 {
     _namedObjectType = scriptClass;
     _typeFormatter   = typeFormatter;
 }
コード例 #5
0
 /// <summary>
 /// Formats an extracted reference type declaration
 /// </summary>
 /// <param name="refType"></param>
 /// <returns></returns>
 public abstract string FormatNamedTypeDeclaration(ExtractedReferenceType refType);
コード例 #6
0
 private string GetIndexName(ExtractedReferenceType refType) => $"{refType.Namespace}.{refType.Name}";
コード例 #7
0
 private string GetClassDeclaration(ExtractedReferenceType refType) => refType.GetClassDeclaration(_formatter);