public void SetMemberValue(ObjectManager manager, MemberInfo member, object value)
{
if (member is FieldInfo)
((FieldInfo)member).SetValue(ObjectInstance, value);
else if (member is PropertyInfo)
((PropertyInfo)member).SetValue(ObjectInstance, value, null);
else throw new SerializationException("Cannot perform fixup");
if (Member != null) {
ObjectRecord containerRecord = manager.GetObjectRecord(IdOfContainingObj);
if (containerRecord.IsRegistered)
containerRecord.SetMemberValue(manager, Member, ObjectInstance);
} else if (ArrayIndex != null) {
ObjectRecord containerRecord = manager.GetObjectRecord(IdOfContainingObj);
if (containerRecord.IsRegistered)
containerRecord.SetArrayValue(manager, ObjectInstance, ArrayIndex);
}
}