Articles of reflection

Diffusion d’instances de type génériques créées à l’aide de Reflection

Je crée des instances d’un type générique à l’aide de la reflection: public interface IModelBuilder { TModel BuildModel(); } public class MyModel { public ssortingng Name { get; set; } } public class MyModelBuilder : IModelBuilder { public MyModel BuildModel() { throw new NotImplementedException(); } } Au moment de l’exécution, tout ce que nous soaps, […]

Détermination de tous les types utilisés par un certain type dans c # en utilisant la reflection

si j’ai class A { public void DoStuff() { B b; } } struct B {} struct C {} et j’ai typeof(A) , Je voudrais obtenir une liste de tous les types utilisés par A. Dans ce cas, ce serait typeof(B) et non typeof(C) . Y a-t-il une bonne façon de faire cela avec reflection?

Convertir func en prédicat en utilisant la reflection en C #

En gros, j’essaie de faire cela , mais je ne sais pas ce que sera T, alors je construis des choses en utilisant des arbres de reflection et d’expression. // Input (I don’t know about “Book”) Type itemType = typeof(Book); // Actual Code // Build up func p => p.AuthorName == “Jon Skeet” ParameterExpression predParam […]

Utiliser la reflection pour obtenir l’atsortingbut d’une propriété via une méthode appelée à partir du setter

Remarque: ceci fait suite à une réponse à une question précédente . Je décore le créateur d’une propriété avec un atsortingbut appelé TestMaxSsortingngLength utilisé dans la méthode appelée à partir du créateur pour la validation. La propriété ressemble actuellement à ceci: public ssortingng CompanyName { get { return this._CompanyName; } [TestMaxSsortingngLength(50)] set { this.ValidateProperty(value); this._CompanyName […]

Comment appeler IDBSet .FirstOrDefault (prédicat) à l’aide de la reflection?

étant donné un IDbSet où Person contient une propriété “Id”, comment puis-je exécuter la commande suivante de manière générique: var p = PersonDbSet.FirstOrDefault(i=>i.Id = 3); Je peux construire le prédicat et obtenir une référence à la méthode d’extension FirstOrDefault, mais je n’arrive pas à tout mettre en place: D’abord le prédicat ParameterExpression parameter = Expression.Parameter(entityType, […]

Créer une instance de DirectoryEntry à utiliser dans le test

J’essaie de créer une instance d’un DirectoryEntry afin de pouvoir l’utiliser pour tester du code auquel un DirectoryEntry sera transmis. Cependant, malgré beaucoup d’essais, je ne trouve pas le moyen d’instancier un DE et d’initialiser son PropertyCollection. J’ai le code suivant qui a été pris et modifié d’ une autre réponse sur SO qui faisait […]

Noms de variable identiques – 2 classes différentes – Comment copier des valeurs d’une à une – Réflexion – C #

Sans utiliser AutoMapper … (car un responsable de ce projet chiera des briques lorsqu’il verra des dépendances) J’ai une classe (classe A) avec cependant beaucoup de propriétés. J’ai une autre classe (classe B) avec ces mêmes propriétés (mêmes noms et type). La classe B pourrait aussi avoir d’autres variables non liées. Existe-t-il un code de […]

Pourquoi les types identiques ne sont-ils pas égaux?

Je développais un petit framework de plug-in et j’ai constaté que je ne pouvais pas utiliser Type.IsAssignableFrom() avec succès pour vérifier si une classe de plug-in implémentait le type IPlugin . J’avais vérifié d’autres questions SO (comme celle-ci) pour voir pourquoi la fonction renvoyait la valeur false, mais à ma grande surprise, aucune des suggestions […]

Comment énumérer tous les éléments qui implémentent une interface générique?

J’ai deux interfaces, un générique et un non générique qui ont une hiérarchie d’inheritance: public interface IGenericRelation : IRelation public interface IRelation Le générique est implémenté par plusieurs contrôles serveur chargés dynamicment et je souhaite énumérer l’ensemble des contrôles qui implémentent cette interface. Je peux faire ce qui suit foreach (IRelation relationControl in this.uiPlhControls.Controls.OfType<IRelation) { […]

Calculer le hachage du code de classe à l’exécution (C #)?

Est-il possible de calculer le hash d’une classe lors de l’exécution en C # (vraisemblablement par reflection)? Pour être clair, je ne veux pas calculer le hashcode d’une instance de ladite classe, je veux calculer le hash du code de la classe lui-même (si une fonction de la classe change, je m’attendrais à ce qu’un […]