0

首先让我说这段代码是在SharpDevelop 4.3中开发的,代码运行正常并给出了预期的结果,但是在调试方面达到这一点有点困难,因为监视窗口似乎不存在我预期的值。谁能告诉我是否应该做些什么来检查这个循环中的值?

例如的值mailItem.Subject在手表中显示为:对象不是类型Microsoft.Office.Interop.Outlook._MailItem(我对下划线有点困惑,因为我读到它只是一个命名约定,我相信我已经根据自己的喜好在整个项目中删除了下划线) 但我注意到手表中的 mailItem 显示为System.__ComObject- 这是我丢失的线索吗?

//LOOPING THROUGH MAIL ITEMS IN THAT FOLDER.
foreach (Microsoft.Office.Interop.Outlook.MailItem mailItem in fldMailItems.Items)
{
    if (mailItem.Body != "")
    {
        MyMail mail = new MyMail();
    mail.Subject = (mailItem.Subject == null) ? string.Empty : mailItem.Subject;
    //mail.
    mailItems.Add(mail);
    }
}

为了进一步说明与Redemption RDOMail一起应用的问题,消息框会按您的预期显示,但监视窗口并未显示属性 SenderName 甚至存在 - 它显示基类作为值:对象,其中_IdentityIdentity两者都为空,还有一个非公共成员,m_ObjjectToDataMap其值也为空。
这是一个导致同样头痛的示例:

    void ConnectOutlook()
    {
         session = new Redemption.RDOSession();
            session.Logon();
            inbox = session.GetDefaultFolder(rdoDefaultFolders.olFolderInbox);          
    }

    void DisconnectOutlook()
    {
        session.Logoff();
        session = null;
    }


    void MainFormLoad(object sender, EventArgs e)
    {
        try
        {

            ConnectOutlook();

            int i=0;
            foreach ( RDOMail mailItem in inbox.Items.Restrict("[MessageClass] = 'IPM.Note'"))
            {
                i++;
                MessageBox.Show(mailItem.SenderName);
            }

            ....
4

1 回答 1

0

文件夹中的所有项目或仅部分项目都会发生这种情况?你需要确保你真的有一个常规的消息,bot 一个报告项目。

这不适用于 Redemption,因为在 Redemption 中,所有消息项(RDOReportItem、RDOMeetingIrtem 等)都是从 RDOMail 派生的。

于 2013-07-30T02:07:12.143 回答