Dynamic not DynamicS. The reference is to dynamic keyword making C# developer’s life easier since 2010. As Rickard “Ikea Frysta Köttbullar” Norström has discovered, the following code works in a sandbox on-premises but spits the dummy in Dynamics 365 Online environment. Not all sandboxes were created equal, it seems.
string outstring = "get it from an external service"; if (!string.IsNullOrEmpty(outstring)) { dynamic outp = JArray.Parse(outstring); if (outp.Count == 1) { var objekt = outp[0]; if (objekt["ProjectTypeID"] != "ART") ... } }
Avoiding dynamic and using explicit cast (instead of relying on var seems to be the key:
JArray outp = JArray.Parse(outstring); string outstring = "get it from an external service"; if (!string.IsNullOrEmpty(outstring)) { JArray outp = JArray.Parse(outstring); if (outp.Count == 1) { JToken objekt = outp[0]; if (objekt["ProjectTypeID"] != "ART") ... } }
Tipp Jarr’s $0.02 + GST
If object coming down the wire is well known in advance, entire Newtonsoft assembly can be avoided by using DataContractJsonSerializer instead.
[…] got a bit of help by George Doubinski and the issue was that the code I was using implicit typed variables. The reason for this is […]