I think calling [GetDynamicMemberNames](https://github.com/ResourceDataInc/Centroid/blob/key-exists/dot-net/Centroid/Config.cs#L111-L115) will let you avoid the exception handling. `GetActualKey` just calls `Single()` on it (which throws if it's not found). You'll have to work in the normalize call as well.