我一直在编写一个 Exchange 传输代理,而且我似乎已经弄清楚了实际开发它的一切。但是现在是测试的时候了,我遇到了一个问题。
我正在监听 OnEndOfData 事件,以便可以查看整个电子邮件。电子邮件到达时包装在 EndOfDataEventArgs 对象中,该对象包含 MailItem 对象。正是这个包含电子邮件的 MailItem 对象导致了问题。我想构造一个 MailItem 对象,这样我就可以测试收到电子邮件时一切是否按预期运行。但到目前为止,我一直无法这样做。
请注意,这是一个 Microsoft.Exchange.Data.Transport.MailItem 对象,而不是Microsoft.Office.Interop.Outlook.MailItem。因此,使用 Application.CreateItem() 将不起作用。
MailItem 是抽象的,所以我尝试对它进行子类化。但在编译后,发现 MailItem 包含许多抽象的内部属性和/或方法。因此,由于我必须覆盖它们,但由于无法看到它们而无法这样做,因此这种方法不起作用。
我在某处缺少一些工厂方法吗?是否有一些内置类扩展了我忽略的 MailItem?还是根本无法从 Exchange 传输代理 DLL 外部创建 MailItem?