मुझे एक वस्तु मिली है जिसमें संपत्तियों का संग्रह है। जब मुझे विशिष्ट इकाई मिलती है तो मैं उस क्षेत्र को देख सकता हूं जिसे मैं ढूंढ रहा हूं (opportunityid
) और यह Value
विशेषता इस अवसर के लिए Guid
है। यह वह मूल्य है जो मैं चाहता हूं, लेकिन यह हमेशा एक अवसर के लिए नहीं होगा, और इसलिए मैं हमेशा opportunityid
पर नहीं देख सकता, इसलिए मुझे उपयोगकर्ता द्वारा प्रदान किए गए इनपुट के आधार पर फ़ील्ड प्राप्त करने की आवश्यकता है।आप PropertyInfo से किसी संपत्ति का मूल्य कैसे प्राप्त कर सकते हैं?
मेरे कोड अब तक है:
Guid attrGuid = new Guid();
BusinessEntityCollection members = CrmWebService.RetrieveMultiple(query);
if (members.BusinessEntities.Length > 0)
{
try
{
dynamic attr = members.BusinessEntities[0];
//Get collection of opportunity properties
System.Reflection.PropertyInfo[] Props = attr.GetType().GetProperties();
System.Reflection.PropertyInfo info = Props.FirstOrDefault(x => x.Name == GuidAttributeName);
attrGuid = info.PropertyType.GUID; //doesn't work.
}
catch (Exception ex)
{
throw new Exception("An error occurred when retrieving the value for " + attributeName + ". Error: " + ex.Message);
}
}
गतिशील attr
, जो बारी में एक मूल्य के क्षेत्र है, जो सही Guid
होता है (इस मामले opportunityid
में) क्षेत्र मैं तलाश कर रहा हूँ में शामिल है। हालांकि, जब मुझे PropertyInfo
जानकारी (opportunityid
) प्राप्त होती है तो इसमें अब Value
विशेषता नहीं है। मैंने PropertyType.GUID
को देखने का प्रयास किया लेकिन यह सही Guid
वापस नहीं लौटाता है। मैं इस संपत्ति के लिए मूल्य कैसे प्राप्त कर सकता हूं?
अच्छा स्पष्टीकरण! GetValue() का दूसरा पैरामीटर है जो यद्यपि शून्य होना चाहिए। – helb
मुझे जो चाहिए वह लगता है। यह सुनिश्चित करने के लिए कि मैं समझता हूं, बस इसका परीक्षण करने जा रहा हूं। – sr28
हमम, मुझे यकीन है कि यह तरीका काम करेगा यदि मैं इसे समझ गया। हालांकि, मुझे एक अपवाद मिल रहा है कि यह CRMWebService.Key को System.Guid में परिवर्तित नहीं कर सकता है। मैंने मूल रूप से attrGuid = (Guid) जानकारी की है। GetValue (attr, null); – sr28