我们编写了一个Outlook加载项,可以在发送电子邮件时启动操作.只有在撰写电子邮件期间设置了标志时才会发生此操作.通过单击切换按钮设置标志.当发送电子邮件时,会触发事件,并将电子邮件的ID存储在队列中.如果邮件出现在已发送文件夹中,则应触发事件,如果队列中发现相同的ID,则应执行操作.
下面我有两种方法.在发送电子邮件时将发生Application_ItemSend,并且在该方法中,在SentItemsQueue上调用EnQueue.EnQueue方法将事件附加到"已发送邮件"文件夹,并且在添加项目时,它应触发将启动我们操作的事件.
当电子邮件正在撰写并在Outlook中发送时,这一切都正常.如果我们从外部程序(如Word)中启动电子邮件,则会执行Application_ItemSend,但不会触发EMailFoundInSentItems(附加在EnQueue中).为什么事件从未被触发?
public partial class ThisAddIn {
void Application_ItemSend(object item, ref bool cancel)
{
try
{
Trace.TraceInformation("E-mail is being sent. Checking for archive flag.");
MailItem mail = item as MailItem;
bool? archive = mail.GetArchiveFlag();
if (archive == true)
{
Trace.TraceInformation("Archive flag was set, going to queue e-mail for archiving.");
this.SentItemsQueue.EnQueue(mail);
}
Marshal.ReleaseComObject(mail);
}
catch (System.Exception ex)
{
Trace.TraceError("An exception was thrown while trying to archive a sent mail item. Exception: {0}.", ex.ToString());
}
}
...
public class SentItemsArchiveQueue
{ …Run Code Online (Sandbox Code Playgroud) 我写了一个动态表单,其中有一个主要部分和子部分基于在主要部分(widget.type)中选择的类型.使用ngSwitch显示和隐藏子部件.
表单的HTML如下所示:
<form class="widget-form cc-form" (ngSubmit)="saveChanges()" novalidate>
<div class="forms-group">
<label for="title" i18n="@@title">Titel</label>
<input class="form-control" id="title" name="title" type="text" [(ngModel)]="widget.title" required />
</div>
<div class="forms-group">
<label class="checkbox-label" for="show" i18n>
<input id="show" name="show" type="checkbox" [(ngModel)]="widget.show" /> <span>Titel tonen in app</span>
</label>
</div>
<div class="forms-group">
<label for="type" i18n="@@type">Type</label>
<select class="form-control" id="type" name="type" [(ngModel)]="widget.type" required>
<option value="text-widget" i18n="@@Text">Tekst</option>
<option value="tasklist-widget" i18n="@@Tasklists">Takenlijst</option>
<option value="image-widget" i18n="@@Text">Afbeelding(en)</option>
<option value="video-widget" i18n="@@Video">Youtube</option>
<option value="link-widget" i18n="@@Link">Link</option>
<option value="contacts-widget" i18n="@@Contacts">Contactpersonen</option>
<option value="attachment-widget" i18n="@@Attachments">Bijlage(n)</option>
</select>
</div>
<ng-container [ngSwitch]="widget.type">
<text-widget *ngSwitchCase="'text-widget'" [data]="widget"></text-widget>
<tasklist-widget *ngSwitchCase="'tasklist-widget'" …Run Code Online (Sandbox Code Playgroud)