What i m trying to accomplish is that compare sys label with sys extension label file.
1.Sys label file
2.Sys extension label file.
Each time there is a different label text value for same label id, info should trigger to highlight the difference in values for same label id.
CURRENT OUTPUT
a>Microsoft.Dynamics.Ax.Xpp.ClrException::Starting at Microsoft.Dynamics.Ax.Xpp.CLRInterop.MakeReflection call........
Further self investigation on error
a>Inserted try & catch to find meaning of the above general CLR exception, using that I realized that
System.MissingMethodException Method System.collection.generic.dictionary .Reset not found (Strange because I was getting no compile time errors and only build time errors)
Which means I cannot reset the generic dictionary, but I need to reset the enumeration so that they both are at same position before comparing checks in.
Can anyone extend support to fix this code.
Code
info ("Starting");
int counter1 =0;
new InteropPermission (InteropKind::ClrInterop).assert();
ClrObject labels = new ClrObject("System.Collections.Generic.Dictionary`2[System.String,System.String]");
ClrObject labelset = new ClrObject("System.Collections.Generic.Dictionary`2[System.String,System.String]");
labels = Microsoft.Dynamics.Ax.Xpp.LabelHelper::GetAllLabels('SYS',System.Globalization.CultureInfo::CurrentCulture);
labelset = Microsoft.Dynamics.Ax.Xpp.LabelHelper::GetAllLabels('SYS_Extension',System.Globalization.CultureInfo::CurrentCulture);
ClrObject labelsEnumerator = labels.GetEnumerator();
ClrObject labelsetEnumerator = labelset.GetEnumerator();
labelsEnumerator.reset();
labelsetEnumerator.reset();
while(labelsEnumerator.MoveNext() )
{
while (labelsetEnumerator.MoveNext() )
{
ClrObject keyValuePair = labelsEnumerator.get_Current();
CLRObject keyvaluePairext = labelsetEnumerator.get_Current();
var currentlabelId = keyValuePair.get_Key();
var currentTxt = keyValuePair.get_Value();
var currentLabelext = keyvaluePairext.get_key();
var currentTxtext = keyvaluePairext.get_value();
if (currentlabelId == currentLabelext && currentTxt != currentTxtext)
{
counter1++;
info (strfmt("SYS label value %1 text = %2, SYS label extension value %3 = %4",currentlabelId,currentTxt,currentLabelext,currentTxtext));
}
}
}
info (strFmt("Done, found so many difference %1",counter1));
CodeAccessPermission::revertAssert();