private List <MemberWithCSharpType> GetMembers(TypeDefinition typeDefinition)
        {
            var fields = typeDefinition.Fields
                         .Where(f => f.IsPublic && !f.IsSpecialName && !f.IsStatic)
                         .Select(p => new MemberWithCSharpType
            {
                Name       = p.Name,
                CSharpType = TypeService.GetCSharpType(p.FieldType)
            });

            var properties = typeDefinition.Properties
                             .Where(p => p.GetMethod != null && p.GetMethod.IsPublic && !p.IsSpecialName && !Helpers.HasCustomAttribute(p, "JsonIgnoreAttribute"))
                             .Select(p => new MemberWithCSharpType
            {
                Name       = p.Name,
                CSharpType = TypeService.GetCSharpType(p.PropertyType)
            });

            return(fields.Union(properties)
                   .Where(t => t.CSharpType.IsGenericParameter || t.CSharpType.TypeDefinition != null)
                   .ToList());
        }