public void remove(DataObject data) { if (data.getState() == DisposableState.Alive) { data.AfterDelete -= this.AfterDelete; data.BeforeInsert -= this.BeforeInsert; data.AfterInsert -= this.AfterInsert; //data.BeforeFetch -= this.BeforeInsert; //data.AfterFetch -= this.AfterInsert; } pool.Remove(data.ToString()); }