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