/// <summary>
        ///
        /// </summary>
        /// <param name="owner"></param>
        /// <param name="e"></param>
        /// <returns></returns>
        public Contribution Load(PluginDefinition owner, XmlElement e)
        {
            Contribution contrib = (Contribution)PluginUtil.loadObjectFromManifest(e);

            if (baseType.IsInstanceOfType(contrib))
            {
                return(contrib);
            }
            else
            {
                throw new Exception(string.Format(
                                        "{0} is incorrect for for this contribution (expected:{1})",
                                        contrib.GetType().FullName, baseType.FullName));
            }
        }
 /// <summary>
 ///
 /// </summary>
 /// <param name="e"></param>
 public DynamicContributionFactory(XmlElement e)
     :
     this(PluginUtil.loadTypeFromManifest(
              (XmlElement)XmlUtil.SelectSingleNode(e, "implementation")))
 {
 }