Exemples d'utilisation de la réflexion en c#

 22/09/2019 |   Admin |  C#


A - Obtenir les valeurs des propriétés d'une classe (avec un type inconnu)

Dans cet exemple nous allons etre capable de lire les valeurs d'une propriété passée en parametre. Dans une liste de type inconnu.

public static void GetProperties<T>(List<T> result, string property)
 
{
 
foreach (var item in result)
 
{
 
PropertyInfo[] properties = item.GetType().GetProperties();
 
var propInfoObj = properties.Where(p => p.Name.ToLower() == property.ToLower()).FirstOrDefault();
 
object propValue = item.GetType().InvokeMember(propInfoObj.Name, BindingFlags.GetProperty, null, item, null);
 
}
 
}

B - Remplir une DropDownList avec les propriétés d'une classe de type static

FieldInfo[] properties = typeof(VotreClasse).GetFields();
 
var flds = properties.Where(p => p.IsStatic);
 
foreach (var item in flds)
 
{
 
ddlType.Items.Add(new ListItem() { Text = item.Name, Value = item.GetValue(null).ToString() });
 
}

Pour toute question laisser un commentaire

Lire >>

Comparer 2 objets en .Net avec la réfléxion

 01/01/2019 |   Admin |  C#


Dans cet article nous allons voir comment comparer les propriétés de 2 objets en c# en utilisant la réflexion.

Nous allons utiliser le package KellermanSoftware.CompareNetObjects pour cela.

Et comparer deux objets de type "Person" avec une "Adresse" pour utiliser la comparaison des propriétés "enfant"

Classe Person et Address:
namespace PocCompareReflection
{
    public class Person
    {
        public string Name { get; set; }
  
        public DateTime DateCreated { get; set; }
  
        public int Age { get; set; }
  
        public Address Address { get; set; }
    }
  
    public class Address
    {
        public string City { get; set; }
  
        public List<string> Phones { get; set; }
    }
}
Et une application console pour éxécuter la comparaison:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using KellermanSoftware.CompareNetObjects;
  
namespace PocCompareReflection
{
    class Program
    {
        static void Main(string[] args)
        {
            CompareObjects compareObjects = new CompareObjects();
 // Objet 1
            Person person1 = new Person();
            person1.DateCreated = DateTime.Now;
            person1.Age = 29;
            person1.Name = "Jean";
          
...

Lire >>

  • 1