public EntityTreeChangeInfo(
     EntityTreeChange enChange,
     IEntityBase oEntity,
     IEntityBase oChildEntity,
     EntityRelation enChildRelation,
     object oAdditionalInfo)
 {
     Change         = enChange;
     Entity         = oEntity;
     ChildEntity    = oChildEntity;
     ChildRelation  = enChildRelation;
     AdditionalInfo = oAdditionalInfo;
 }
            public AutoTreeChangeNotify(
                IEntityBase oTarget,
                EntityTreeChange enChange,
                IEntityBase oParentEntity,
                IEntityBase oChildEntity,
                EntityRelation enParentChildRelation,
                object oAdditionalInfo)
            {
                m_oTarget = oTarget;

                m_oChangeInfo = m_oTarget.PreTreeChange(
                    enChange,
                    oParentEntity,
                    oChildEntity,
                    enParentChildRelation,
                    oAdditionalInfo);
            }
        public EntityTreeChangeInfo PostTreeChange(
            EntityTreeChange enChange,
            IEntityBase oParentEntity,
            IEntityBase oChildEntity,
            EntityRelation enParentChildRelation,
            object oAdditionalInfo)
        {
            EntityTreeChangeInfo oChangeInfo = new EntityTreeChangeInfo(
                enChange,
                oParentEntity,
                oChildEntity,
                enParentChildRelation,
                oAdditionalInfo);

            PostTreeChange(oChangeInfo);

            return(oChangeInfo);
        }