2011-08-03 2 views
0

아래 코드가 있다고 가정 해 봅시다 :Dynamics CRM : null 값 및 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"); 
    } 
} 

위의 코드에서 다이나믹에서 환율이 null 인 경우 원하는 값이 아닌 10 진수의 기본값을 반환 할 것입니다. 그것이 null인지 아십시오). 만약 내가 사용했다 :

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

그것은 역학에서 null의 경우 null을 다시 가져올까요? 나는 다른 시나리오에서 이것을 시도하고 항상 값 유형의 기본값을 되돌려 보냅니다. 내 dto 객체 속성이 null인지 확인하기 위해 null을 어떻게 다시 얻을 수 있습니까?

답변

0

내가 제안 할 수있는 한 가지 방법은 반환 유형을 확인하는 GetPropertyValue 메서드 주위에 도우미/래퍼를 작성하고 반환 유형이 nullable인지 확인하는 것입니다 (contact.GetPropertyValue ("exchangerate")에서와 같이). 그런 다음 속성 값도 null가되어 null를 돌려줍니다. HTH. :)