之前,我會做這樣的:
Entity contact = new Entity("contact");
if (contact.Contains("telephone2") && !string.IsNullOrEmpty(contact.GetAttributeValue<string>("telephone2"))
{
// telephone 2 is not null
}
編輯:更多的信息來證明這個簡短的答案
我發現有null
和empty
之間的差異
想象一下這樣的情景:
- 您有聯繫人的更新插件。
- 這跟有名字(「約翰」)和姓(「史密斯」)設置
- 你更新名字
現在,當你閱讀使用GetAttributeValue
輸入參數,你贏了」 t知道姓氏屬性是否爲空,或者是否爲空字符串。因此,有必要檢查entity.attributes
是否包含姓
Entity contact = pluginContext.InputParameters["Target"] as Entity;
var lastName = contact.getAttribute<string>("lastname");
// -> lastName is an empty string
var lastNameInInputParameters = contact.Contains("lastname");
// -> lastNameInInputParameters is false
如果一個屬性是空的InputParameters這並不意味着該屬性具有空值,它只是意味着用戶沒有改變這字段在此更新
我已經更新了我的答案,包括我爲什麼使用這種方法 – jasonscript