Comment retourner le type d'un Système.__COMObject dans le Système.Type en C#
Je suis en train de faire un programme et je veux faire une Réflexion, mais pour cela, j'ai besoin d'un Objet de la classe de Type de, droite? pour utiliser le .Méthode GetProperties ()... j'ai Donc essayé ceci:
Type typeName = simObjects.getType();
Mais le .GetType() est de retour ".__COMObject". Et ce n'est pas utile.
La même chose arrive avec .typeof(). Je recherche et trouvé un autre code, celui-ci:
Type typeName = (Type)Microsoft.VisualBasic.Information.TypeName(simObjects);
Mais cette méthode renvoie une Chaîne de caractères, et j'en ai besoin dans le Système.Type de, on Peut tout de génie s'il vous plaît aider moi?
COM ne prend pas en charge la Réflexion.
add-in-express.com/creating-addins-blog/2011/12/20/...
Vous pouvez utiliser un CustomMarshaler pour convertir un COM ITypeInfo (disponible sur les objets de COM que de mettre en œuvre IDispatch) pour une .NET Type de Réflexion, comme indiqué dans le cette réponse et projet.
add-in-express.com/creating-addins-blog/2011/12/20/...
Vous pouvez utiliser un CustomMarshaler pour convertir un COM ITypeInfo (disponible sur les objets de COM que de mettre en œuvre IDispatch) pour une .NET Type de Réflexion, comme indiqué dans le cette réponse et projet.
OriginalL'auteur Jovita | 2014-09-10
Vous devez vous connecter pour publier un commentaire.
Bien, je sais que c'est une fin de answear, je résoudre mon problème il y a quelques temps, je vais answear, j'espère que ça peut aider quelqu'un.
Je n'ai pas utilisé reflextion comme je le souhaite, mais son travail très bien.
Ce code de retour le nom des attributs, par exemple, imaginer que mon COMObject ont ces attributs:
et son Fils sont:
dans la première boucle, la descrip.Le nom sera "âge", "nom" et "Phill", et dans la seconde (supose que le condiiton retour vrai avec les "Fils"), "âge" et "nom".
Espère que cela aide quelqu'un.
OriginalL'auteur Jovita
Voir ce lien sur la façon d'obtenir le type:
http://support.microsoft.com/kb/320523
De voir cette SI réponse concernant les objets COM et de réflexion:
https://stackoverflow.com/a/10617479/4004002
Aussi, savez-vous ce que les propriétés sont à venir de temps? Si oui, vous peut (je n'ai jamais essayé avec un objet COM) être en mesure d'utiliser la Dynamique de la place pour accéder aux propriétés.
EDIT: Ce lien explique à l'aide de la dynamique et de la COM
http://msdn.microsoft.com/en-us/magazine/ff714583.aspx
Dans le cas où il disparaît:
La même technique peut être appliquée à tout type d'objet tant que vous savez ce que les propriétés sont appelées. Propriétés dynamiques sont évaluées au moment de l'exécution. Seulement affecter votre objet COM à une dynamique et d'accéder à ses propriétés, tout comme vous le feriez pour tout POCO.
je suis en train de lire ces liens, je ne sais pas si vous aider, mais merci en tout cas
OriginalL'auteur DVK