Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/304.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托管API 2.0为现有约会绑定自定义扩展属性_C#_Exchange Server_Exchangewebservices_Ews Managed Api - Fatal编程技术网

C# 使用EWS托管API 2.0为现有约会绑定自定义扩展属性

C# 使用EWS托管API 2.0为现有约会绑定自定义扩展属性,c#,exchange-server,exchangewebservices,ews-managed-api,C#,Exchange Server,Exchangewebservices,Ews Managed Api,我想使用自定义扩展属性在数据库中进行唯一的预约。我使用FindAppoints()查找所有约会: 然后我使用foreach循环遍历所有约会: foreach (var appointment in appointments) 对于没有扩展属性的所有约会: if (appointment.ExtendedProperties.Count <= 0) 但它不起作用,因为我搜索会议并尝试输出扩展属性和它的值,但我没有得到结果,它没有绑定。我的问题是,我做错了什么?您还可以为现有预约提供哪些其

我想使用自定义扩展属性在数据库中进行唯一的预约。我使用FindAppoints()查找所有约会:

然后我使用foreach循环遍历所有约会:

foreach (var appointment in appointments)
对于没有扩展属性的所有约会:

if (appointment.ExtendedProperties.Count <= 0)

但它不起作用,因为我搜索会议并尝试输出扩展属性和它的值,但我没有得到结果,它没有绑定。我的问题是,我做错了什么?您还可以为现有预约提供哪些其他解决方案?顺便说一句,我正在使用MS Exchange server 2010_SP2。

请参阅我在这篇文章中的答案: 我认为你的问题与此相当相似。“FindItems”方法不加载任何自定义属性。这就是原因

if (appointment.ExtendedProperties.Count <= 0)
最后,您的代码应该如下所示:

ExtendedPropertyDefinition def = new ExtendedPropertyDefinition(DefaultExtendedPropertySet.PublicStrings, "RateTheMeetingId", MapiPropertyType.Integer);
var appointments = _service.FindAppointments(WellKnownFolderName.Calendar, calendarView);

ExtendedPropertyDefinition def = new ExtendedPropertyDefinition(DefaultExtendedPropertySet.PublicStrings, "RateTheMeetingId", MapiPropertyType.Integer);

PropertySet propset = new PropertySet(PropertySet.IdOnly);
propset.Add(def);

foreach (var appointment in appointments)
{
    //appointment should already be binded, now load it
    appointment.Load(propset);
    object value = null;
    if (item.TryGetProperty(def, out value))
    {
        //Do something
    }
    else
    {
        //Add Property
    }
}

请参阅我在本帖中的答案: 我认为你的问题与此相当相似。“FindItems”方法不加载任何自定义属性。这就是原因

if (appointment.ExtendedProperties.Count <= 0)
最后,您的代码应该如下所示:

ExtendedPropertyDefinition def = new ExtendedPropertyDefinition(DefaultExtendedPropertySet.PublicStrings, "RateTheMeetingId", MapiPropertyType.Integer);
var appointments = _service.FindAppointments(WellKnownFolderName.Calendar, calendarView);

ExtendedPropertyDefinition def = new ExtendedPropertyDefinition(DefaultExtendedPropertySet.PublicStrings, "RateTheMeetingId", MapiPropertyType.Integer);

PropertySet propset = new PropertySet(PropertySet.IdOnly);
propset.Add(def);

foreach (var appointment in appointments)
{
    //appointment should already be binded, now load it
    appointment.Load(propset);
    object value = null;
    if (item.TryGetProperty(def, out value))
    {
        //Do something
    }
    else
    {
        //Add Property
    }
}

非常感谢你!你在我的应用程序中解决了我最大的问题:)非常感谢!你解决了我应用程序中最大的问题:)