title: How can I remove a contact CompleteName.Title with EWS managed api v1.1?
body: <p>Using EWS managed api v1.1, I can successfully save/set the contact "Title" or honorific (if you prefer) to a non-empty value, but I can't figure out how to remove or set it back to an empty string/null.</p>
  
  <p>I've tried to set an empty value <strong>and</strong> I've tried to remove the extended property.  Here is relevant code.</p>
  
  <pre><code>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);
  </code></pre>
  
  <p>I've also tried to use a different overload on the ExtendedPropertyDefinition as mentioned in <a href="https://stackoverflow.com/questions/4863364">this very similar question</a>, but it didn't change my end result for removing the property.  I'm not sure I understand the difference in the two signatures for the constructor.</p>
  
  <pre><code>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);
  </code></pre>
  
  <p><strong>Brute Force Work-Around</strong></p>
  
  <p>I suppose I could take a complete copy of the contact (without the title) and delete the original, but that seems a bit over the top and would probably cause other bugs.</p>