Hallo mensen,
Ik heb een tijd geleden een stukje code geschreven die aan de hand van een string value een methode kan opzoeken en deze uitvoeren. Dit ongeveer als volgt:
Dim [property] As MethodInfo = GetType(classX).GetMethod(_name)
[property].Invoke(Me, myparamarray)
Dit alles werkt prima. Nu wil ik het echter nog een extra stap zetten bij een ander project, waar ik niet alleen de functie/methode zo opzoek, maar waar ook nog de class, of in dit geval de module, waarin die methode zit en deze kan variëren. Ik heb een aantal modules gemaakt, elk in een aparte vb-file met daarin de functie horende bij een bepaald programma onderdeel. Probleem is alleen dat ik dus niet meer het stuk "GetType(classX).GetMethod(_name)" kan gebruiken. Dit ten eerste omdat "classX" niet vast staat, maar nu ook variabel is. Verder is het ook geen class, maar een module, dus kan ik de handel niet instantiëren. In dat geval zou ik het object nog kunnen achterhalen via de Activator.CreateInstance() methode.
Ik heb al een hele reeks dingen geprobeerd om aan de hand van een string de module te vinden, of de specifieke functie/methode direct te vinden binnen de Assembly, alleen helaas zonder resultaat.
Bestaat er een manier om, in ongeveer de stijl van het eerste stukje code, direct de methode te zoeken/aanroepen binnen alle modules van dit VS-project? Of anders, mocht het voorgaande niet mogelijk zijn, de module te zoeken aan de hand van een stringvalue en daarop de GetMethod() toe te passen?
Bvd.
Ik heb een tijd geleden een stukje code geschreven die aan de hand van een string value een methode kan opzoeken en deze uitvoeren. Dit ongeveer als volgt:
Dim [property] As MethodInfo = GetType(classX).GetMethod(_name)
[property].Invoke(Me, myparamarray)
Dit alles werkt prima. Nu wil ik het echter nog een extra stap zetten bij een ander project, waar ik niet alleen de functie/methode zo opzoek, maar waar ook nog de class, of in dit geval de module, waarin die methode zit en deze kan variëren. Ik heb een aantal modules gemaakt, elk in een aparte vb-file met daarin de functie horende bij een bepaald programma onderdeel. Probleem is alleen dat ik dus niet meer het stuk "GetType(classX).GetMethod(_name)" kan gebruiken. Dit ten eerste omdat "classX" niet vast staat, maar nu ook variabel is. Verder is het ook geen class, maar een module, dus kan ik de handel niet instantiëren. In dat geval zou ik het object nog kunnen achterhalen via de Activator.CreateInstance() methode.
Ik heb al een hele reeks dingen geprobeerd om aan de hand van een string de module te vinden, of de specifieke functie/methode direct te vinden binnen de Assembly, alleen helaas zonder resultaat.
Bestaat er een manier om, in ongeveer de stijl van het eerste stukje code, direct de methode te zoeken/aanroepen binnen alle modules van dit VS-project? Of anders, mocht het voorgaande niet mogelijk zijn, de module te zoeken aan de hand van een stringvalue en daarop de GetMethod() toe te passen?
Bvd.
Ryzen 9 9950X3D ~~ 32GB GSkill TridentZ 6000Mhz ~~ ASRock B850M Steel Legend ~~ Powercolor Hellhound RX9070XT