Utilisation de la liaison tardive en cas de dépendance envers plusieurs versions d’Outlook
Les compléments Outlook gérés qui utilisent l’assembly PIA Outlook sont compilés avec les informations de type fournies par l’assembly PIA. Cette liaison anticipée des informations de type pour les méthodes et propriétés permet au compilateur d’effectuer des contrôles de syntaxe et de type afin de s’assurer que la quantité correcte et le type correct de paramètres sont passés à la méthode ou à la propriété, et que la valeur renvoyée est du type attendu.
Cependant, la liaison anticipée présente l'inconvénient d'introduire une incompatibilité de version si une méthode ou propriété appelée par le complément a une déclaration différente dans une version antérieure. Par exemple, l'ajout de nouvelles méthodes et propriétés ou la modification de membres existants d'un objet peut entraîner une modification de la disposition binaire de l'objet et provoquer des problèmes avec un complément managé qui utilise les informations de type plus récentes pour automatiser une version antérieure d'Outlook.
Dans ces cas-là, la liaison tardive attend l’exécution pour lier les appels de propriété et de méthode à leurs objets. La liaison tardive peut aider à éviter les complications liées aux types qui diffèrent dans différentes versions d'Outlook, et est particulièrement utile lors de l'écriture de compléments qui dépendent de plusieurs versions d'Outlook.
La liaison tardive implique que le complément appelle l'interface IDispatch (éventuellement en anglais) implémentée par Outlook. Pour utiliser la liaison tardive en Visual C#, utilisez la méthode System.Type.InvokeMember. Cette méthode appelle IDispatch::GetIDsOfNames et IDispatch::Invoke pour établir une liaison aux méthodes et propriétés d’Outlook. La méthode IDispatch ::GetIDsOfNames permet à Visual C# d’interroger un objet sur les méthodes et propriétés qu’il prend en charge et la méthode IDispatch ::Invoke permet ensuite à Visual C# d’appeler ces méthodes et propriétés.