2017-05-24 2 views
0

Microsoft Dynamics CRM API를 사용하여 CRM에서 제공 한 EntityCollection에서 얻은 정보로 양식을 채우는 프로그램을 작성했습니다. 제 문제는 엔티티가 KeyValuePair<string, object>으로 구성되어 있으며 이로 인해 두통이 발생하고 있다는 것입니다. kvps의 객체 중 일부는 런타임 중에 OptionSetValue 유형이며 OptionSetValue에 추가 접근자가 필요하기 때문에 실제로 값에 액세스하는 방법이 필요합니다. 프로그램이 컴파일하지만 변환하려고하기 때문에 런타임 동안 expection를 던질 것이다 위의 예에서개체 형식을 Microsoft.Xrm.Sdk.OptionSetValue 형식으로 변환

foreach (KeyValuePair<string, object> thePair in e.Attributes.ToList()) 
{ 
    int theResult = thePair.Value; 
} 

: 여기

내 문제 ('E'인 엔티티)를 설명하는 몇 가지 예제 코드입니다 OptionSetValue ~ int32. C# 컴파일러는 thePair 런타임 때까지 유형 OptionSetValue의 것을 알지 못하기 때문에, .Value 접근은 내가 필요로하는 값을 반환이 시나리오에서는

foreach (KeyValuePair<string, object> thePair in e.Attributes.ToList()) 
{ 
    int theResult = thePair.Value.Value; 
} 

:하지만,

여기에 어떻게 든 달성하고 싶은거야 오브젝트 유형에 .Value 구성원이 없기 때.에 컴파일되지 않습니다.

내 문제에 대한 명확한 설명이 필요합니까?

답변

0

이 게시물을 입력 한 후 5 분 이내에이 문제를 해결할 때마다이 내용을 모두 입력 한 것처럼 보입니다. 간단하게 타입 변환 (OptionSetValue)

foreach (KeyValuePair<string, object> thePair in e.Attributes.ToList()) 
{ 
    int theResult = (OptionSetValue)thePair.Value.Value; 
} 
관련 문제