C# 为什么';sharpdevelop中的watch(观察)窗口是否显示此变量的值?
首先让我说,这段代码是在中开发的,代码运行正常,并给出了它应该得到的结果,但是要达到这一点在调试方面有点困难,因为watch窗口似乎不像我预期的那样显示值。 有人能告诉我是否应该做些什么来检查这个循环中的值吗 例如,C# 为什么';sharpdevelop中的watch(观察)窗口是否显示此变量的值?,c#,automation,outlook,sharpdevelop,outlook-redemption,C#,Automation,Outlook,Sharpdevelop,Outlook Redemption,首先让我说,这段代码是在中开发的,代码运行正常,并给出了它应该得到的结果,但是要达到这一点在调试方面有点困难,因为watch窗口似乎不像我预期的那样显示值。 有人能告诉我是否应该做些什么来检查这个循环中的值吗 例如,mailItem.Subject的值在手表中显示为:Object不是Microsoft.Office.Interop.Outlook.\u mailItem(我对下划线有点困惑,因为我读到它只是一种命名约定,我相信我在整个项目中删除了下划线是出于我自己的喜好)但是我注意到手表上的ma
mailItem.Subject
的值在手表中显示为:Object不是Microsoft.Office.Interop.Outlook.\u mailItem
(我对下划线有点困惑,因为我读到它只是一种命名约定,我相信我在整个项目中删除了下划线是出于我自己的喜好)但是我注意到手表上的mailItem显示为系统。\uu 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);
}
}
为了进一步说明正在应用的问题,消息框按预期显示,但监视窗口并未显示属性SenderName是否存在-它将基类显示为value:object,其中\u Identity
和Identity
均为null,以及另一个非公共成员,其m_objjecttodata map
的值也为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);
}
....
文件夹中的所有项目都会发生这种情况,还是只有一些项目会发生这种情况?您需要确保确实有一条常规消息,而不是一个报告项
这不适用于兑换,因为在兑换过程中,所有邮件项目(RDOReportItem、rdomeetingirItem等)都是从RDOMail派生的。使用兑换时也会出现同样的问题RDOMail也会在观察窗口中错误显示。例如,如果我将mailItem.To作为一个监视项,它会显示对象不是Redemption.IRDOMail类型,但这是不正确的,因为这表明:MessageBox.Show(mailItem.To);我看不到所有邮件项目的任何属性,无论它是Outlook邮件项目还是Redemption RDOMail-它都是每个项目,无论是哪个文件夹。如果所有COM对象都出现这种情况,您确实需要联系SharpDevelop供应商。。。