Hi, I encountered a bug with ExpandoObject. It seems that the setting NullValueHandling (Ignore) will be not applied if it is an ExpandoObject.
Please have a look at it.
[Test]
public void ExpandoObjectNullHandling()
{
// arrange
dynamic dyn = new ExpandoObject();
dyn.id = "test";
dyn.val = (string)null;
// act
var json = JsonConvert.SerializeObject(
dyn, new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore });
// assert
StringAssert.DoesNotContain("null", json);
}