为什么不';t sharpdevel中的监视窗口显示该变量的值

本文关键字:窗口 监视 显示 变量 sharpdevel 为什么不 | 更新日期: 2023-09-27 18:25:04

首先让我说这段代码是在SharpDevelop 4.3中开发的,代码运行良好,并给出了预期的结果,但在调试方面要达到这一点有点困难,因为观察窗口似乎没有像我预期的那样显示值。有人能告诉我我是否应该做些什么来检查这个循环中的值吗?

例如,mailItem.Subject的值在手表中显示为:Object的类型不是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是否存在-它将基类显示为值:object,其中_IdentityIdentity都为null,以及另外一个具有m_ObjjectToDataMap的非公共成员,其值也为null
下面是一个引起同样头痛的例子:

    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);
            }
            ....

为什么不';t sharpdevel中的监视窗口显示该变量的值

文件夹中的所有项目都会发生这种情况吗?你需要确保你真的有一个定期的消息,机器人一个报告项目。

这不适用于赎回,因为在赎回中,所有消息项目(RDOReportItem、RDOMeetingIrtem等)都源自RDOMail。