12
votes

C # équivalent de VB6's GetObject

Le code VB6 suivant se connecte à un logiciel tiers et oblige un identifiant avec le nom d'utilisateur et le mot de passe administrateur: xxx

Je veux faire la même tâche dans C # mais aussi vert C # Développeur (environ 3 mois d'expérience) Je ne sais pas comment faire cela. J'ai passé une journée très frustrante sur Google, mais n'a rien trouvé qui correspond au projet de loi (la plupart d'entre eux que je ne pouvais même pas comprendre), je sais encore moins de VB6 que je ne le fait sur C #, mais VB6 le rend si facile. < / P>

Je ne peux pas tester la connexion à ce logiciel tiers avant de mettre en œuvre notre environnement QA. Je voudrais donc tester la fonctionnalité avec une application simple, un bloc-notes par exemple. Quelle fonction / méthode pourrais-je appelle le Bloc-notes au lieu de "FixLogin"?

Je serais très reconnaissant si quelqu'un pouvait m'aider avec ce problème.

genre Cordialement, Steve.


1 commentaires

Microsoft.VisualBasic.interaction.getObject en référence à microsoft.visualbasic.dll


3 Réponses :


-1
votes

getObject renvoie un contrôle COM. Vous devriez travailler avec Com Interop Pour ce faire en C #. (Ce n'est pas trivial.)


0 commentaires

18
votes

Même si vous travaillez avec C #, vous pouvez utiliser toutes les classes et méthodes fournies par VB.NET, y compris GetObject.

Il suffit d'ajouter une référence au composant .NET "Microsoft.VisualBasic".

Une fois que vous avez ajouté la référence, vous pouvez appeler Microsoft.VisualBasic.interAction.createObject () ou Microsoft.VisualBasic.interaction.getObject ()


1 commentaires

+1, moyen de le faire. CreateObject () fait un travail assez non trivial.



12
votes

1 commentaires

Le désir de GetObject est d'obtenir un objet instancié en mémoire s'il existe; que cette solution fait. S'il renvoie NULL, vous pouvez utiliser de nouveaux pour instancier. C'est la meilleure solution à la question, car elle gère tous les aspects du comportement.