protected override void LoadChildren()
{
IOptimizedPersistable pObj = (IOptimizedPersistable)m_session.Open(m_objectId, false, null, false, 0, Int32.MaxValue);
if (pObj != null)
{
m_session.LoadFields(pObj);
object o = pObj.WrappedObject;
TypeVersion baseShape = pObj.Shape.BaseShape;
while (baseShape != null)
{
foreach (DataMember member in baseShape.DataMemberArray)
{
object memberObj = member.GetMemberValue(o);
LoadChild(member, memberObj);
}
baseShape = baseShape.BaseShape;
}
foreach (DataMember member in pObj.Shape.DataMemberArray)
{
object memberObj = member.GetMemberValue(o);
LoadChild(member, memberObj);
}
}
}
}