Si potrebbe utilizzare il suo ProgID per ottenere il tipo e l'attivatore
Type objectType = Type.GetTypeFromProgID("Outlook.Application");
object outlook = Activator.CreateInstance(objectType);
Ma usando questo in C# si perderanno tutte le informazioni sul tipo (cioè non IntelliSense) e avete bisogno di chiamare qualche brutto metodo per invocare le operazioni con LateBinding (google per Type.Invoke)
Un'altra opzione è aggiungere un riferimento a Microsoft.Office.Interop.Outlook.ApplicationClass, in modo da avere le informazioni sul tipo di tempo di compilazione e creare un'istanza per Outlook nel solito modo
using Microsoft.Office.Interop.Outlook;
Microsoft.Office.Interop.Outlook.ApplicationClass outlook
= new Microsoft.Office.Interop.Outlook.ApplicationClass();
Oppure si potrebbe usare la mia libreria Late Binding Helper e utilizzarlo come questo
Invoker outlook = BindingFactory.CreateAutomationBinding("Outlook.Application");
outlook.Method("Quit").Invoke();
No Intellisense con questo, ma almeno la biblioteca si salverà dal brutto chiamate Type.Invoke e dare invece un'interfaccia fluente.
fonte
2009-05-05 11:00:53
penso che funzionerà :). Grazie! – jeje1983
Non si applica realmente al codice nella domanda, ma ok –