まず、このコードは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で適用されている問題をさらに説明するために、メッセージ ボックスは予想どおりに表示されますが、ウォッチ ウィンドウ_Identity
にはプロパティ SenderName が存在することさえ表示されませんIdentity
。さらに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);
}
....