Ну, вы могли бы попробовать прочитать IL тела конструктора, но я бы не советовал.
Интересно, не лучше ли украсить каждый класс атрибутом и прочитать его вместо этого ...
[TransactionId("IdTransaction")]
public class SubTransaction : Transaction
{
}
Базовый класс может загружать идентификатор транзакции таким же образом, если это все еще необходимо.
Кроме того, каждый класс может объявлять постоянное поле, всегда с тем же именем:
public class SubTransaction : Transaction
{
public const string ConstTransactionId = "IdTransaction";
public SubTransaction() : base()
{
this.TransactionId = ConstTransactionId;
}
}
Это должно быть легко читать с отражением. Это уродливо, но ты в основном в ужасной ситуации ...