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で適用されている問題をさらに説明するために、メッセージ ボックスは予想どおりに表示されますが、ウォッチ ウィンドウ_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);
            }

            ....
4

1 に答える 1

0

フォルダ内のすべてのアイテムで発生しますか、それとも一部だけで発生しますか? 本当に通常のメッセージ、ボット、レポート アイテムがあることを確認する必要があります。

Redemption ではすべてのメッセージ項目 (RDOReportItem、RDOMeetingIrtem など) が RDOMail から派生するため、これは Redemption には適用されません。

于 2013-07-30T02:07:12.143 に答える