Articles of reflection

Comment la désérialisation WCF instancier des objects sans appeler un constructeur?

Il y a de la magie avec la désérialisation de WCF. Comment instancie-t-il une instance du type de contrat de données sans appeler son constructeur? Par exemple, considérons ce contrat de données: [DataContract] public sealed class CreateMe { [DataMember] private readonly ssortingng _name; [DataMember] private readonly int _age; private readonly bool _wasConstructorCalled; public CreateMe() { […]

Comment puis-je obtenir un type générique à partir d’une représentation sous forme de chaîne?

J’ai MyClass . Et puis j’ai cette ssortingng s = “MyClass”; . Comment puis-je obtenir Type de la chaîne s ? Une façon (moche) est d’parsingr les “” et faire: Type acType = Type.GetType(“AnotherClass”); Type whatIwant = typeof (MyClass).MakeGenericType(acType); Mais existe-t-il un moyen plus propre d’obtenir le type final sans parsing, etc.?

Utilisation de PropertyInfo pour connaître le type de propriété

Je veux parsingr dynamicment une arborescence d’objects pour effectuer une validation personnalisée. La validation n’est pas importante en tant que telle, mais je veux mieux comprendre la classe PropertyInfo. Je vais faire quelque chose comme ça, public bool ValidateData(object data) { foreach (PropertyInfo propertyInfo in data.GetType().GetProperties()) { if (the property is a ssortingng) { ssortingng […]

Objectif C Introspection / Réflexion

Existe-t-il une méthode, une fonction, une API, une méthode communément acceptée, etc. pour vider le contenu d’un object instancié dans Objective C, en particulier dans l’environnement Cocoa / Cocoa-Touch d’Apple? Je veux pouvoir faire quelque chose comme MyType *the_thing = [[MyType alloc] init]; NSSsortingng *the_dump = [the_thing dump]; //pseudo code NSLog(“Dumped Contents: %@”, the_dump); afficher […]

Comment trouver tous les types dans un assembly héritant d’un type spécifique C #

Comment obtenez-vous une collection de tous les types qui héritent d’un autre type spécifique?

Comment vérifier si une propriété existe sur un type anonyme dynamic dans c #?

J’ai un object de type anonyme que je reçois en tant que dynamic à partir d’une méthode que je voudrais archiver si une propriété existe sur cet object. …. var settings = new { Filename=”temp.txt”, Size=10 } … function void Settings(dynamic settings) { var exists = IsSettingExist(settings,”Filename”) } Comment pourrais-je implémenter IsSettingExist?

Comment puis-je évaluer le code C # de manière dynamic?

Je peux faire une eval(“something()”); pour exécuter le code dynamicment en JavaScript. Y a-t-il un moyen pour moi de faire la même chose en C #? Voici un exemple de ce que j’essaie de faire: j’ai une variable entière (disons i ) et j’ai plusieurs propriétés par les noms: “Property1”, “Property2”, “Property3”, etc. opérations sur […]

Conversion d’entier en long

Je dois obtenir la valeur d’un champ en utilisant la reflection. Il se trouve que je ne suis pas toujours sûr du type de données du champ. Pour cela, et pour éviter une duplication de code, j’ai créé la méthode suivante: @SuppressWarnings(“unchecked”) private static T getValueByReflection(VarInfo var, Class classUnderTest, Object runtimeInstance) throws Throwable { Field […]

Comment faire pour empêcher ReflectionTypeLoadException lorsqu ‘appeler Assembly.GetTypes ()

J’essaie d’parsingr un assemblage pour les types implémentant une interface spécifique en utilisant un code similaire à celui-ci: public List FindTypesImplementing(ssortingng assemblyPath) { var matchingTypes = new List(); var asm = Assembly.LoadFrom(assemblyPath); foreach (var t in asm.GetTypes()) { if (typeof(T).IsAssignableFrom(t)) matchingTypes.Add(t); } return matchingTypes; } Mon problème est que je reçois une asm.GetTypes() ReflectionTypeLoadException lorsque […]

Est-il possible en Java d’accéder aux champs privés par reflection

Est-il possible en Java d’accéder au domaine privé str par reflection? Par exemple pour obtenir la valeur de ce champ. class Test { private Ssortingng str; public void setStr(Ssortingng value) { str = value; } }