我希望将隐藏数据保存到Outlook 365事件中。这就是我目前正在做的事情。
SingleValueLegacyExtendedProperty singleEP1 = new SingleValueLegacyExtendedProperty
{
Id = "String " + "{" + Guid.NewGuid() + "} " + "Name " + "PlanningID",
Value = appointment.PlanningId.ToString() == null ? "0" : appointment.PlanningId.ToString()
};
SingleValueLegacyExtendedProperty singleEP2 = new SingleValueLegacyExtendedProperty
{
Id = "String " + "{" + Guid.NewGuid() + "} " + "Name " + "CustomerName",
Value = appointment.CustomerName.ToString() == null ? "" : appointment.CustomerName.ToString()
};
SingleValueLegacyExtendedProperty singleEP3 = new SingleValueLegacyExtendedProperty
{
Id = "String " + "{" + Guid.NewGuid() + "} " + "Name " + "ProjectName",
Value = appointment.ProjectName.ToString() == null ? "" : appointment.ProjectName.ToString()
};
SingleValueLegacyExtendedProperty singleEP4 = new SingleValueLegacyExtendedProperty
{
Id = "String " + "{" + Guid.NewGuid() + "} " + "Name " + "PresentationName",
Value = appointment.PrestationName.ToString() == null ? "" : appointment.PrestationName.ToString()
};
当我使用通话获取所有日历项目时:
ICalendarCalendarViewCollectionPage retrievedEvents = await graphClient
.Me
.Calendars["Calendar"]
.CalendarView
.Request(options)
.GetAsync();
然后我在单值扩展属性上获得NULL。任何帮助都将受到高度赞赏。
答案 0 :(得分:1)
你不想这样做
Id = "String " + "{" + Guid.NewGuid() + "} " + "Name " + "PlanningID",
使用Guid.NewGuid()只会在Exchange中生成一个随机扩展属性,如果你做得足够会导致扩展属性耗尽。您在此处使用的GUID很重要,因为您需要在要检索该属性时指定它。因此,选择一个GUID并在要为应用程序设置的每个属性中使用它,例如
Id =“String”+“{66f5a359-4659-4830-9070-00049ec6ac6e}”+“Name”+“PlanningID”,
然后我在单值扩展属性上获得NULL。任何帮助都将受到高度赞赏。
要检索上述扩展属性,您需要在请求中指定它(请注意为什么使用特定GUID很重要)例如
ICalendarCalendarViewCollectionPage retrievedEvents = await graphserviceClient
.Me
.Calendars["Calendar"]
.CalendarView
.Request(options)
.Expand("SingleValueExtendedProperties($filter=Id eq 'String {66f5a359-4659-4830-9070-00049ec6ac6e} Name PlanningID')")
.GetAsync();
但是,除非您尝试使用MAPI或EWS与旧应用程序进行交互,否则对于此类自定义数据更好的想法是开放式扩展https://developer.microsoft.com/en-us/graph/docs/api-reference/v1.0/resources/opentypeextension,当您有多个要使用的属性时,这会避免很多丑陋