public void RegisterAttributeType(Func<AttributeType> attributeType) { //get the alias, this requires a call to the method var at = attributeType(); _attributeTypeCache.AddOrUpdate(at.Alias, attributeType, (k, a) => attributeType); }