私は Exchange トランスポート エージェントを作成してきましたが、実際の開発に関してはすべて把握しているようです。しかし、今度はテストの時間です。問題が発生しました。
電子メール全体を確認できるように、OnEndOfData イベントをリッスンしています。電子メールは、MailItem オブジェクトを含む EndOfDataEventArgs オブジェクトにラップされて到着します。電子メールを含み、問題を引き起こしているのはこの MailItem オブジェクトです。メールを受信したときにすべてが期待どおりに動作することをテストできるように、MailItem オブジェクトを作成したいと考えています。しかし、これまでのところ、私はそうすることができませんでした。
これは、Microsoft.Office.Interop.Outlook.MailItem ではなく、Microsoft.Exchange.Data.Transport.MailItem オブジェクトであることに注意してください。したがって、 Application.CreateItem() を使用しても機能しません。
MailItem は抽象化されているので、サブクラス化してみました。しかし、コンパイル時に、MailItem に多数の抽象的な内部プロパティやメソッドが含まれていることが明らかになりました。したがって、それらをオーバーライドする必要がありますが、それらを見ることができないためにオーバーライドできないため、このアプローチは機能しません。
私が見逃しているファクトリーメソッドはどこかにありますか?私が見落としていた MailItem を拡張する組み込みクラスはありますか? それとも、Exchange トランスポート エージェント DLL の外部から MailItem を作成する方法がないのでしょうか?