3

現在、MicrosoftのEWSマネージAPIを介してOutlookContactオブジェクトから特定のプロパティを読み取ろうとしています。これらのContactオブジェクトを関数から取得しFindItems()ます。これらのフィールドの一部はTitleorUser1フィールドなどの拡張プロパティであり、読みにくいです。現在、私は次のことを行っています。

Guid propertySetId = new Guid("{00062004-0000-0000-C000-000000000046}");
ExtendedPropertyDefinition titleProp = new ExtendedPropertyDefinition(propertySetId, 0x3A45, MapiPropertyType.String);
ExtendedPropertyDefinition user1Prop = new ExtendedPropertyDefinition(propertySetId, 0x804F, MapiPropertyType.String);

string title, user1;
contact.TryGetProperty(titleProp, out title);
contact.TryGetProperty(user1Prop, out user1);

これを実行すると、TryGetProperty常にfalseが返されます。検索している連絡先のこれらのフィールドがOutlookに入力されていることを確認しました。

編集:これは私が連絡先オブジェクトを取得する方法です。

ExchangeService service = //...
Mailbox userMailbox = new Mailbox(emailAddress);
FolderId folderId = new FolderId(WellKnownFolderName.Contacts, userMailbox);
FindItemsResults<Item> results;
const string AQS = "Category:~>\"CategoryTag\"";
ItemView view = new ItemView(200);
results = service.FindItems(folderId, AQS, view);
foreach (var result in results)
{
    Contact contact = result as Contact;
    //...Try to read fields
}
4

1 に答える 1

5

アクセスしたいプロパティ( )ItemViewを含めるようにを変更する必要があります。PropertySet

var user1Val = string.Empty;
var user1Prop = new ExtendedPropertyDefinition(DefaultExtendedPropertySet.Address, 0x804F, MapiPropertyType.String);
ExtendedPropertyDefinition[] extendedFields = new ExtendedPropertyDefinition[] { user1Prop };
PropertySet extendedPropertySet = new PropertySet(BasePropertySet.FirstClassProperties, extendedFields);
ItemView view = new ItemView(200) { PropertySet = extendedPropertySet };
// ...
var title = contact.CompleteName.Title; // Title value
contact.TryGetProperty(user1Prop, out user1Val); // user field 1 value
于 2012-04-30T16:06:53.200 に答える