public void WriteNullIntoACollection() { XamlSchemaContext xsc = new XamlSchemaContext(); XamlObjectWriter ow = new XamlObjectWriter(xsc); XamlType roParentWithCpaXT = xsc.GetXamlType(typeof(RoParentWithCP)); ow.WriteStartObject(roParentWithCpaXT); XamlMember contentProperty = roParentWithCpaXT.ContentProperty; ow.WriteStartMember(contentProperty); ow.WriteGetObject(); ow.WriteStartMember(XamlLanguage.Items); ow.WriteValue(null); ow.WriteValue(null); ow.WriteEndMember(); ow.WriteEndObject(); ow.WriteEndMember(); ow.WriteEndObject(); RoParentWithCP roParentWithCP = (RoParentWithCP)(ow.Result); List <Kid> kids = roParentWithCP.RoKids; if (kids.Count != 2 || kids[0] != null || kids[1] != null) { throw new Exception("Calling WriteValue twice with a null value is malfunctioning."); } }
public void WriteValuesIntoACollection() { XamlSchemaContext xsc = new XamlSchemaContext(); XamlObjectWriter ow = new XamlObjectWriter(xsc); XamlType roParentWithCpaXT = xsc.GetXamlType(typeof(RoParentWithCP)); ow.WriteStartObject(roParentWithCpaXT); XamlMember contentProperty = roParentWithCpaXT.ContentProperty; ow.WriteStartMember(contentProperty); ow.WriteGetObject(); ow.WriteStartMember(XamlLanguage.Items); ow.WriteValue(new Kid()); ow.WriteValue(new Kid()); ow.WriteValue(new Kid()); ow.WriteEndMember(); ow.WriteEndObject(); ow.WriteEndMember(); ow.WriteEndObject(); RoParentWithCP roParentWithCpa = (RoParentWithCP)(ow.Result); if (roParentWithCpa.RoKids.Count != 3) { throw new Exception("WriteValue of multiple items aren't being added into a collection by XamlObjectWriter"); } }