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);
}
}
}