C# 使用GetRDOObjectFromOutlookObject时,赎回邮件对象未正确链接到原始邮件项目

C# 使用GetRDOObjectFromOutlookObject时,赎回邮件对象未正确链接到原始邮件项目,c#,outlook,outlook-addin,outlook-redemption,C#,Outlook,Outlook Addin,Outlook Redemption,我遇到过这样的情况,如果我从OOM获得了MailItem,并且这封电子邮件是新创建的,那么它的条目ID将是null。如果我使用RDOSession.GetRDOObjectFromOutlookObject方法从此MailItem获取RDOMail,获取的RDOMail的所有属性都将为null或设置为默认值,更改这些属性不会更改原始MailItem中相应属性的值 使用相同的方法从现有的MailItem(具有有效条目ID的邮件)获取RDOMail,效果很好 赎回文件中未记录此行为。只是想知道我是否

我遇到过这样的情况,如果我从OOM获得了
MailItem
,并且这封电子邮件是新创建的,那么它的条目ID将是
null
。如果我使用
RDOSession.GetRDOObjectFromOutlookObject
方法从此
MailItem
获取
RDOMail
,获取的
RDOMail
的所有属性都将为null或设置为默认值,更改这些属性不会更改原始
MailItem
中相应属性的值

使用相同的方法从现有的
MailItem
(具有有效条目ID的邮件)获取
RDOMail
,效果很好


赎回文件中未记录此行为。只是想知道我是否遗漏了什么吗?

这是Outlook对象模型经常做的事情(或者说没有做)-在保存项目之前,通过UI或Outlook对象模型设置的最新更改无法通过MAPI访问


GetRDOObjectFromOutlookObject的主要目的不是为了方便访问未保存的更改,而是为了确保Redemption和OOM最终都使用从MailItem.MAPIOBJECT检索到的同一个IMessage对象,以避免打开同一个IMessage对象两次(保存时可能会导致冲突).

谢谢您的确认。将其添加到文档中是一个好主意,这样其他开发人员就可以注意这种行为。