EWS managed api v1.1を使用すると、「タイトル」の連絡先や名誉ある名前(必要に応じて)を空ではない値にセーブ/セットすることはできますが、削除する方法や空の文字列/ nullEWS managed api v1.1でCompleteName.Titleという連絡先を削除するにはどうすればよいですか?
空の値を設定しようとしましたと拡張プロパティを削除しようとしました。ここに関連コードがあります。
var titleDef = new ExtendedPropertyDefinition(0x3A45, MapiPropertyType.String);
// works when set to a non-empty string value
ewsContact.SetExtendedProperty(titleDef, "Mr.");
// throws null argument exception when set to String.Empty or null
ewsContact.SetExtendedProperty(propDefinition, String.Empty);
// isRemoved is equal to false and the value doesn't change
var isRemoved = ewsContact.RemoveExtendedProperty(titleDef);
私もthis very similar questionで述べたようにExtendedPropertyDefinition上の異なるオーバーロードを使用しようとしたが、それはプロパティを除去するための私の最終結果を変更しませんでした。私は、コンストラクタの2つのシグネチャの違いを理解していません。
var titleDef = new ExtendedPropertyDefinition(new Guid("{00062004-0000-0000-C000-000000000046}"), 0x3A45, MapiPropertyType.String);
// isRemoved is equal to false and the value doesn't change
var isRemoved = ewsContact.RemoveExtendedProperty(titleDef);
ブルートフォースワークアラウンド
私は(タイトルなし)連絡先の完全なコピーを取り、オリジナルを削除できたとし、それは少しトップの上にいるようだと、おそらくだろう他のバグを引き起こす。
あなたは、元の[連絡先]を作成しました(http://msdn.microsoft.com/en-us/library/gg274394%28v=exchg.80%29.aspx)エントリまたはあなただけの変更でした既存ですか? – SliverNinja
'ContactId()'メソッドを 'ItemId'と組み合わせて既存の連絡先を変更しています。 –