public virtual void Remove(string name) { // validation if (AllowToUpdate == false) { throw new Exception("The Knowledge Base is locked"); } if (KB.Contains(name) == false) { throw new Exception(string.Format("The logical name '{0}' doesn't exist", name)); } // fire event if (OnBeforeClearKnowledgeBase(name) == false) { return; } // remove name from the KB KB.Remove(name); // fire event OnClearKnowledgeBase(name); }