Как получить имя всех дочерних свойств из модели / класса EDM - PullRequest
0 голосов
/ 22 апреля 2020

Вот класс

    public class AmountData
        {
            public int Id{ get; set; }
            public decimal Amount { get; set; }
            public SentAmount SentAmount{ get; set; }
        }

    public class SentAmount
      {
        public decimal SentAmount { get; set; }
      }

    public class CreditAmount
    {
        public int Id { get; set; }

        public string Timestamp { get; set; }

        public DateTime ReceivedTime { get; set; };

        public byte[] RowVersion { get; set; }

        public bool IsActive { get; set; }

        public AmountData Credit { get; set; }

        public AmountData Debit { get; set; }

        public DateTime CreatedDate { get; set; }

        }

Мне нужно имя всех свойств, введите оба значения: CreditAmount, AmountData, SentAmount, но для этого я могу использовать только родительский класс (CreditAmount).

Я пробовал это с помощью рекурсивного метода, но не удается

private List<Type> allTypes = new List<Type>();
public void GetProperties(Type type)
        {
            foreach (var p in type.GetProperties())
            {
                allTypes.Add(p.PropertyType);

                foreach(var q in p.PropertyType.GetProperties())
                {
                    GetProperties(q.PropertyType);
                }
            }
        }
...