public Object GetDelegate(DelegationImpl delegationImpl) { Object delegateClass = null; IClassLoader classLoader = null; try { classLoader = (IClassLoader)ServiceLocator.Instance.GetService(typeof(IClassLoader)); delegateClass = classLoader.CreateObject(delegationImpl); } finally { ServiceLocator.Instance.Release(classLoader); } // configure class if (delegateClass is IConfigurable) { IConfigurable configurable = (IConfigurable)delegateClass; IDictionary parameters = ParseConfiguration(delegationImpl); configurable.SetConfiguration(parameters); } return(delegateClass); }