Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#使用EWS创建日历项,如何返回结果?_C#_Exchange Server_Exchangewebservices_Ews Managed Api - Fatal编程技术网

C#使用EWS创建日历项,如何返回结果?

C#使用EWS创建日历项,如何返回结果?,c#,exchange-server,exchangewebservices,ews-managed-api,C#,Exchange Server,Exchangewebservices,Ews Managed Api,我基于此网站构建了一个应用程序 如何返回XML结果“…”,以便我以后可以使用它删除或编辑日历项 微软在整个框架上做得很好,但他们真的忘记了这件小事吗 我找到了一些(对我来说不合逻辑的)解决办法 我应该用这个来解决这个问题吗 干杯看来您找到的解决方案没有返回XMl结果,persay。解决方案所做的是将唯一标识符作为扩展属性定义添加到电子邮件中。然后在发送后,解决方案在“Sent Items”文件夹中搜索,通过匹配在发送电子邮件之前附加的唯一标识符来查找刚刚发送的电子邮件的保存副本 然后在博客上写到

我基于此网站构建了一个应用程序

如何返回XML结果“…”,以便我以后可以使用它删除或编辑日历项

微软在整个框架上做得很好,但他们真的忘记了这件小事吗

我找到了一些(对我来说不合逻辑的)解决办法 我应该用这个来解决这个问题吗


干杯

看来您找到的解决方案没有返回XMl结果,persay。解决方案所做的是将唯一标识符作为扩展属性定义添加到电子邮件中。然后在发送后,解决方案在“Sent Items”文件夹中搜索,通过匹配在发送电子邮件之前附加的唯一标识符来查找刚刚发送的电子邮件的保存副本

然后在博客上写到

下面是 通过在中调用FindItems生成 上面的代码示例


我只
请注意包含唯一标识符的XML标记

<t:ExtendedFieldURI PropertySetId="20b5c09f-7cad-44c6-bdbf-8fcbeea08544" PropertyName="MyExtendedPropertyName" PropertyType="String" /> 

我可能没有抓住要点,但在保存后,您可以获得约会.Id,我相信这是此约会的唯一Id。将其存储在某个位置,然后您可以使用以下工具再次访问约会进行编辑或删除:

Appointment appointment = Appointment.Bind(service, new ItemID("saved id value"));
之后,您可以使用最初用于设置值的相同属性更改值,然后发布:

appointment.Update(ConflictResolutionMode.AlwaysOverwrite);
或删除:

appointment.Delete(DeleteMode.HardDelete);
您根本不必访问XML


(注意,据我所知,您无法更新或删除公用文件夹日历中的约会,尽管您可以创建它们。)

另一种方法是在您的操作后加载对象。但是正如前面所说的,您可以使用appoint.Id.

谢谢,因此我理解它是如何实现的,那么我需要做什么才能获得itemID和ChangeKey?在我“保存”约会后。保存(SendInvitationMode.SendToAllAndSaveCopy)?看看这个链接-。请记住,EWS是一个“web服务”,请求服务的结果是序列化的(即,根据您的请求以XML格式)。
appointment.Update(ConflictResolutionMode.AlwaysOverwrite);
appointment.Delete(DeleteMode.HardDelete);