This question is locked. New answers and comments are not allowed.
I don't have a sample project to show (as I don't feel like going through the process of getting one up and running after spending 4 hours trying to debug this) it appears there are a LOT of bugs and crashes that are caused by dynamics having inconsistent types for the same property.
For example, if you have a large data grid (large meaning horizontal and vertically scrolls) and you give it 2 dynamic objects with a property called "Test" but one has an int and another has a string, the whole application crashes randomly. The data grid will display properly at first, but if you scroll all the way to the right and back you have a 50% chance of it crashing, and if you rebind the grid with new data the grid becomes completely broken and eventually causes a crash.
These crashes have the exception message of "A duplicate key exists" (or something of the sort) and has a null stack trace, and is virtually impossible to track down. It's merely by luck I figured out the true issue.
I really suggest checks are added and a *friendly* exception is thrown when this type of bad data is passed in so that it's made extremely clear to the user that they have incorrect data.
For example, if you have a large data grid (large meaning horizontal and vertically scrolls) and you give it 2 dynamic objects with a property called "Test" but one has an int and another has a string, the whole application crashes randomly. The data grid will display properly at first, but if you scroll all the way to the right and back you have a 50% chance of it crashing, and if you rebind the grid with new data the grid becomes completely broken and eventually causes a crash.
These crashes have the exception message of "A duplicate key exists" (or something of the sort) and has a null stack trace, and is virtually impossible to track down. It's merely by luck I figured out the true issue.
I really suggest checks are added and a *friendly* exception is thrown when this type of bad data is passed in so that it's made extremely clear to the user that they have incorrect data.