【问题标题】:EWS SetExtendedProperty issueEWS SetExtendedProperty 问题
【发布时间】:2017-10-15 19:16:53
【问题描述】:

我正在尝试使用新属性更新现有电子邮件,但无法正常工作。我正在通过添加带有时间戳字符串的自定义属性对其进行测试。

当我在运行后获取项目时,我根本看不到它的任何扩展属性......

这是我尝试保存它的方法:

message.Load();
Guid MyPropertySetId = new Guid("{117c7745-5df5-4049-97be-8e2d2d92d566}");
ExtendedPropertyDefinition extendedPropertyDefinition = new ExtendedPropertyDefinition(MyPropertySetId, "JNB", MapiPropertyType.String);
message.SetExtendedProperty(extendedPropertyDefinition, DateTime.Now.AddDays(2).ToString());
message.Update(ConflictResolutionMode.AlwaysOverwrite);

然后当我再次将其拉回时,我正在这样做:

if (item.ExtendedProperties.Count > 0)
{
    // Display the name and value of the extended property.
    foreach (ExtendedProperty extendedProperty in item.ExtendedProperties)
    {
        if (extendedProperty.PropertyDefinition.Name == "ccpUniqueID")
        {
            messageAlreadyLogged = AccountMessageManager.HasMessageAlreadyBeenSaved(extendedProperty.Value.ToString());
        }

    }
}

只是没有任何扩展属性......

【问题讨论】:

标签: c# exchangewebservices extended-properties


【解决方案1】:

Exchange 只会返回您告诉它返回的扩展属性,因此在您的情况下,您需要将该属性添加到属性集,然后使用 Load 将其加载回来(默认情况下不会发生)例如

        Guid MyPropertySetId = new Guid("{117c7745-5df5-4049-97be-8e2d2d92d566}");
        ExtendedPropertyDefinition extendedPropertyDefinition = new ExtendedPropertyDefinition(MyPropertySetId, "JNB", MapiPropertyType.String);
        PropertySet psPropSet = new PropertySet(BasePropertySet.FirstClassProperties){extendedPropertyDefinition};
        message.Load(psPropSet);

【讨论】:

    猜你喜欢
    • 2018-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-19
    • 1970-01-01
    相关资源
    最近更新 更多