private static Dictionary<string, ParameterInfo> GetBindingProperties(Link link) { var props = link.GetType() .GetTypeInfo() .DeclaredProperties .Select(p => new ParameterInfo() { PropertyInfo = p, Attribute = p.GetCustomAttributes<LinkParameterAttribute>() .FirstOrDefault() }) .ToDictionary(pi => { return pi.Attribute == null ? pi.PropertyInfo.Name.ToLowerInvariant() : pi.Attribute.Name; }, pr => pr); return props; }