Вы можете использовать (злоупотреблять?) Порядок полей как метаданные вашего класса, которые вы можете прочитать с помощью отражения.
например, если у вас есть класс, представляющий сетевой протокол с полями ID, PORT и XOR, в таком порядке вы можете определить его как:
class MyProtocol {
int ID;
int PORT;
int XOR;
}
Теперь предположим, что вы используете отражение для итерации полей протокола, для отправки по проводам. Порядок, возвращаемый GetProperties, будет таким, как вы определили, и вам не нужно было явно писать дополнительные метаданные.
Не уверен, если это хорошая идея, хотя зависеть от этого.