gpt4 book ai didi

c# - 如何使用 Outlook 后期绑定(bind)将附件添加到 mailitem

转载 作者:行者123 更新时间:2023-11-30 17:21:02 25 4
gpt4 key购买 nike

我正在尝试创建邮件项目并使用后期绑定(bind)向其添加一些附件。我已经成功地创建了邮件项,但我无法调用附件 属性。

object objApp;
object objEmail;

Type objClassType = Type.GetTypeFromProgID("Outlook.Application");
objApp = Activator.CreateInstance(objClassType);

// Microsoft.Office.Interop.Outlook.OlItemType.olMailItem = 0
objEmail = objApp.GetType().InvokeMember("CreateItem", BindingFlags.InvokeMethod, null, objApp, new object[] { 0 });

mailItemType.InvokeMember("Subject", BindingFlags.SetProperty, null, objEmail, new object[] { subject });

// THIS RETURNS NULL?!
PropertyInfo att = mailItemType.GetProperty("Attachments", BindingFlags.GetProperty);

当没有附件属性(或方法)可供调用时,我该怎么办?对于早期绑定(bind),它只是 objEmail.Attachments.Add(...)

最佳答案

问题是我直接调用了 GetProperty。它应该是具有 BindingFlags.GetProperty 的 InvockeMember。我认为这是因为接口(interface)是 IUnknown 并且只有方法 invoking 有效。

我还发现您可以从 CLSID 获取附件类型

Type attachmentsType = Type.GetTypeFromCLSID(new Guid("0006303C-0000-0000-C000-000000000046"));

然后调用

attachmentsType.InvokeMember("Add", BindingFlags.InvokeMethod, null, attachments, new object[] { ... });

此示例适用于 Office 2003

关于c# - 如何使用 Outlook 后期绑定(bind)将附件添加到 mailitem,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3812284/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com