public void ReadIntoProperty(IVgXmlSerializerContext sContext, IVgXmlTargetedPropertyContext pContext) { if (pContext.IsCollection()) { var entityValue = ReadEntity(sContext, pContext.PropertyType.GetGenericArguments().First(), pContext.EntityType); if (entityValue == null) { return; } pContext.AddToCollection(entityValue); } else { pContext.SetValue(ReadEntity(sContext, pContext.PropertyType, pContext.EntityType)); } }
public void WriteFromProperty(IVgXmlSerializerContext sContext, IVgXmlTargetedPropertyContext pContext) { if (pContext.GetValue() == null) { return; } if (pContext.IsCollection()) { var collection = pContext.GetValue() as IEnumerable; foreach (var item in collection) { WriteEntity(sContext, item, pContext.GetBestMatchingNameFor(item), pContext.EntityType); } } else { WriteEntity(sContext, pContext.GetValue(), pContext.GetBestMatchingNameFor(pContext.GetValue()), pContext.EntityType); } }