Вы не можете диктовать порядок инициализации c. Но вы можете полностью избежать этой проблемы, отложив инициализацию с помощью lazy logi c.
public static class Utility
{
private static Lazy<UtilityObject> _myUtil = null;
private static Utility()
{
_myUtil = new Lazy<UtilityObject>( () => new UtilityObject(ConfigContext.myValue) );
}
public static myUtil => _myUtil.Value;
}
Используя эту технику, служебный объект не инициализируется до тех пор, пока он не будет фактически использован.
Если Логика c для инициализации ConfigContext
имеет аналогичную проблему, вы также можете использовать Lazy там, и все ваши ленивые поля будут инициализированы каскадным способом, в порядке, в котором они необходимы.