在写一个获得outlook pst文件路径的时候,程序需要动态从GAC中加载Microsoft.Office.Interop.Outlook.dll,加载没问题,但无法创建com给出接口的实例,因为C#不支持创建接口的实例。而每个接口都有一个CoClass,创建其CoClass的实例就等于创建接口的实例了。所以可以用下面的方法:
assemblyFullName = "要加载的dll文件的全路径"
System.Reflection.Assembly outlookAssembly = System.Reflection.Assembly.LoadFile(assemblyFullFileName);
Type appType1 = outlookAssembly.GetType("Microsoft.Office.Interop.Outlook.Application");
Type appType = appType1.GetInterface("_Application");
var coClassAttr = (System.Runtime.InteropServices.CoClassAttribute)appType1.GetCustomAttributes(typeof(System.Runtime.InteropServices.CoClassAttribute), false)[0];
var coClass = coClassAttr.CoClass;
// Create outlook application.
app = Activato