2011-06-06 1 views
0

Je sais que c'est un peu old school, mais je dois traduire une fonction LDAP écrite en VB (Visual Basic pas .net). Et en utilisant le code managé je ne peux pas produire le même résultat.Quelle DLL dois-je référencer pour un objet COM LDAP?

Pour résoudre le problème rapidement, je voudrais utiliser COM (Component Object Model) exactement comme la fonction Visual Basic est en train de faire comme ceci:

set dso=GetObject("LDAP:") 

Je suis complètement hors de la pratique avec COM, ce DLL aurais-je besoin d'inclure comme référence pour le faire fonctionner?

Répondre

1

Je crois que Marshal.GetActiveObject est l'équivalent de l'appel VB GetObject que vous avez l'habitude d'utiliser.

Cela vous ramènera l'objet, vous devez alors soit:

  1. Référence un assembly avec les définitions de type pour votre objet LDAP
  2. Faire les appels à l'objet en utilisant la réflexion appeler
  3. Utilisez le mot-clé dynamic en C# 4.0 pour faire les appels à l'objet à l'aide d'un mécanisme fin lié, semblable à ce que VB a

Je recommande d'utiliser opti sur 3 si vous utilisez .Net 4.0

+0

Connaissez-vous le nom exact de la DLL et son emplacement? –

+0

Je crois que c'est Activeds.dll, mais je suppose que ce pourrait être l'un des: Adsldp.dll, Adsldpc.dll, Adsmsext.dll, ou Activeds.dll. – joncham