awaisshabir Ответов: 2

У меня есть класс внутри класса у меня есть некоторые свойства, как я получаю тип данных свойств, значения свойств и имя его атрибута


у меня есть класс внутри класса у меня есть некоторые свойства, как я получаю тип данных свойств, значения свойств и имя его атрибута
например

открытый класс человек
{
[Требуемый]
public int ID{get;set;}
}

Что я уже пробовал:

открытый класс человек
{
[Требуемый]
public int ID{get;set;}
}

2 Ответов

Рейтинг:
1

Karthik_Mahalingam

попробовать это

class Program
{
    static void Main(string[] args)
    {
        Person obj = new Person();
        obj.ID = 34;
       var props = typeof(Person).GetProperties().ToList();
       foreach (var item in props)
       {
           string propertyName = item.Name; // ID
           string type = item.PropertyType.Name; // Int32
           object value = item.GetValue(obj,null); // 34
           var attribute = item.GetCustomAttributes(true)[0]; // Required
            
       }

    } 
}

public class Person
{
    [Required]
    public int ID { get; set; }
}

public class Required : Attribute
{
 
}


Рейтинг:
1

OriginalGriff

Если вы посмотрите на это: Преобразование списка в DataTable[^] он преобразует List<T> К DataTable глядя на свойства класса - который дает вам имя и тип каждого свойства.
В каждом отеле также есть Attributes коллекция, в которой этот совет Использование диаграммы с несколькими линиями из коллекции[^] используется для того, чтобы решить, должно ли свойство быть нанесено на карту или нет.

Вместе они дают вам код, который вам нужен.