我正在尝试使用 xml 文件来确定应将哪些 Outlook 属性包含在通过 VSTO 插件代码执行的工作流中。
例子
xml 可能会声明工作流需要Subject
当前Outlook.MailItem
的。我无法使用反射来Subject
使用其字符串名称“Subject”获取属性,因为它MailItem
是一个接口而不是一个类。
我认为解决方案可能是创建和编译动态 C# 代码,按名称返回所需的属性......
问题:我一直无法弄清楚如何找到正在运行的 Microsoft.Office.Interop.Outlook.dll 的位置,以便将其添加为对动态编译器的引用。我尝试了许多组合,最后的努力如下所示。
CodeDomProvider provider = new Microsoft.CSharp.CSharpCodeProvider();
CompilerParameters parameters = new CompilerParameters();
parameters.GenerateExecutable = false;
parameters.GenerateInMemory = true;
parameters.IncludeDebugInformation = false;
parameters.ReferencedAssemblies.Add(Assembly.GetAssembly(typeof(Outlook.MailItem)).Location);