2011-08-03 30 views
0

比方說,我有下面的代碼:Dynamics CRM中:空值和GetPropertyValue <T>()

public class ContactDTO 
{ 
    public string Email {get; set;} 
    public decimal? ExchangeRate {get; set;} 
} 
...... 

var contacts = crm.GetEntities("contact") 

var cList = new List<ContactDTO>(); 
foreach(contact in contacts) 
{ 
    clist.Add(new ContactDTO 
    { 
     Email = contact.GetPropertyValue<string>("emailaddress1"); 
     ExchangeRate = contact.GetPropertyValue<decimal>("exchangerate"); 
    } 
} 

在上面的代碼,如果匯率是空的動力,我會回來的默認值這是不是我想要的小數(我想知道它是否爲空)。如果我使用:

contact.GetPropertyValue<decimal?>("exchangerate") 

應該是帶回空,如果它在動態無效?我在其他場景中嘗試過這種方式,並且始終發回值類型的默認值。我怎樣才能得到空回來,以便我可以確保我的dto對象屬性爲空?

回答

0

我可以建議的一種方法是在GetPropertyValue方法周圍編寫一個幫助程序/包裝,它檢查返回類型並確保返回類型是否爲空(如contact.GetPropertyValue(「exchangerate」)),如果屬性值也是null,然後返回null。 HTH。 :)