【发布时间】:2010-11-15 15:30:16
【问题描述】:
我编写了一些 VSTO (2003) 代码,这些代码成功地根据邮件的附件应用了一些强制性的主题行更改。编写代码是为了在 microsoft.office.interop.outlook.mailitem 上运行但是,我需要相同的代码来在其他类型上运行,例如 microsoft.office.interop.outlook.appointmentitem (事实上它需要适用于任何用户可以发送有主题的)。
假设 Outlook 项目类型具有主题属性、附件属性和保存方法,我该如何编写适用于所有相关 interop.outlook 类型的代码。
我尝试通过反射解决此问题,但 GetProperty 正在返回 null,因此我无法在其上使用 GetValue
? mi.GetType().GetProperty("主题") 空值 ?(mi as Microsoft.Office.Interop.Outlook.MailItem).Subject “考试科目”似乎没有一个通用的outlookitem 类我可以转换为来执行此操作。什么是正确的方法?
编辑: 为了澄清我的代码是这样开始的......
void Application_ItemSend(object Item, ref bool Cancel) { 如果(项目是 Microsoft.Office.Interop.Outlook.MailItem) { Microsoft.Office.Interop.Outlook.MailItem currentItem = 项目为 Microsoft.Office.Interop.Outlook.MailItem;然后对 currentItem 进行处理(包括传递给当前使用 Microosft.Office.Interop.Outlook.MailItem 属性键入的各种函数。我希望它们处理“Microsoft.Interop.Outlook.somethingsendable”
【问题讨论】:
-
mi声明为什么类型? -
在我的原始代码中,它声明为邮件项,但是,我希望能够处理其他类型...我将编辑我的问题以澄清
标签: c# reflection vsto polymorphism