public IDictionary<string, RemoteKeyAttribute> RemoteKeys => GetType()
.GetProperties()
.Select(p => new {
Name = p.Name,
RemoteKey = p.GetCustomAttributes(typeof(RemoteKeyAttribute), true).SingleOrDefault() as RemoteKeyAttribute
}).Where(k => k.RemoteKey != null)
.ToDictionary(k => k.Name, k => k.RemoteKey);