public AssemblyInterfaceData(IAssemblyWrapper assemblyToAnalyze)
        {
            Assembly = assemblyToAnalyze;

            Name = Assembly.GetName().Name;
            Version = "v" + Assembly.GetName().Version;
            CLRVersion = Assembly.ImageRuntimeVersion;

            ReferencedAssemblies = Assembly.GetReferencedAssemblies().Select(x => x.FullName).ToList();

            var types = Assembly.GetTypes();

            foreach (var type in types)
            {
                var typeEnumValue = GetTypeEnumValueForType(type);
                switch (typeEnumValue)
                {
                    case TypeEnum.Class:
                        Classes.Add(new ClassTypeData(type));
                        break;
                    case TypeEnum.Interface:
                        Interfaces.Add(new InterfaceTypeData(type));
                        break;
                    case TypeEnum.Enum:
                        Enums.Add(new EnumTypeData(type));
                        break;
                    case TypeEnum.Struct:
                        Structs.Add(new StructTypeData(type));
                        break;
                }
            }

            Classes = Classes.OrderBy(x => x.Name).ToList();
            Interfaces = Interfaces.OrderBy(x => x.Name).ToList();
            Enums = Enums.OrderBy(x => x.Name).ToList();
            Structs = Structs.OrderBy(x => x.Name).ToList();
        }