C# 新日历事件或修改日历事件的EWS PullSubscription
我一直在搜索一个EWS pullsubscription示例,该示例允许我获取自pullsubscription启动以来为用户创建或修改的日历事件列表。我有工作代码来获取收件箱中的信息,但我还没有找到一个好的例子来说明如何在日历中这样做 下面是收件箱的一个示例;是否有人可以为我提供一个链接或代码示例,以使用Exchange Web服务请求订阅完成日历事件或约会的相同操作C# 新日历事件或修改日历事件的EWS PullSubscription,c#,.net,exchangewebservices,C#,.net,Exchangewebservices,我一直在搜索一个EWS pullsubscription示例,该示例允许我获取自pullsubscription启动以来为用户创建或修改的日历事件列表。我有工作代码来获取收件箱中的信息,但我还没有找到一个好的例子来说明如何在日历中这样做 下面是收件箱的一个示例;是否有人可以为我提供一个链接或代码示例,以使用Exchange Web服务请求订阅完成日历事件或约会的相同操作 ExchangeService service; PullSubscription subscriptionI
ExchangeService service;
PullSubscription subscriptionInbox;
private void SetService() {
service = new ExchangeService(ExchangeVersion.Exchange2007_SP1);
service.Url = new Uri("https://mail.myserver.com/EWS/Exchange.asmx");
}
private void SetSubscription() {
if(service == null) {
SetService();
}
// Subscribe to pull notifications in the Inbox folder, and get notified when
// a new mail is received, when an item or folder is created, or when an item
// or folder is deleted.
subscriptionInbox = service.SubscribeToPullNotifications(
new FolderId[] { WellKnownFolderName.Inbox },
5 /* timeOut: the subscription will end if the server is not polled within 5 minutes. */,
null /* watermark: null to start a new subscription. */,
EventType.NewMail, EventType.Modified);
}
private void btnGetLatestMessages_Click(object sender, EventArgs e) {
if(subscriptionInbox == null) {
SetSubscription();
}
GetEventsResults eventsInbox = subscriptionInbox.GetEvents();
EmailMessage message;
// Loop through all item-related events.
foreach(ItemEvent itemEvent in eventsInbox.ItemEvents) {
switch(itemEvent.EventType) {
case EventType.NewMail:
try {
Item item = Item.Bind(service, itemEvent.ItemId);
if(item.ItemClass.ToLower() == "IPM.Note".ToLower()) {
message = EmailMessage.Bind(service, itemEvent.ItemId);
MessageBox.Show("Inbox/NewMail - " + message.Subject);
}
} catch(Exception ex) {
MessageBox.Show("EventType.NewMail - " + itemEvent.ItemId);
}
break;
case EventType.Modified:
try {
Item item = Item.Bind(service, itemEvent.ItemId);
if(item.ItemClass.ToLower() == "IPM.Note".ToLower()) {
message = EmailMessage.Bind(service, itemEvent.ItemId);
MessageBox.Show("Inbox/Modified - " + message.Subject);
}
} catch(Exception ex) {
MessageBox.Show("EventType.NewMail - " + itemEvent.ItemId);
}
break;
}
}
}
只需使用指定的事件类型订阅日历而不是收件箱
var subscriptionCalendar = service.SubscribeToPullNotifications(
new[] { new FolderId(WellKnownFolderName.Calendar) },
1440,
null,
EventType.Created, EventType.Modified);
或者,您可以为
FolderId(WellKnownFolderName.Inbox)
和FolderId(WellKnownFolderName.Calendar)
创建一个拉式通知,其中包含所需的事件类型。
。您的问题回答了我的问题;)