Example #1
0
 public ExtensionPointConfiguration(ExtensionPointAttribute attribute)
 {
     Id            = attribute.Id;
     BundleId      = attribute.BundleId;
     Name          = attribute.Name;
     Description   = attribute.Description;
     Configuration = attribute.Configuration;
 }
Example #2
0
        public void Merge(ExtensionPointAttribute attr)
        {
            Trace.Assert(Id == attr.Id);

            if (string.IsNullOrEmpty(Name))
            {
                Name = attr.Name;
            }
            if (string.IsNullOrEmpty(Description))
            {
                Description = attr.Description;
            }
            if (string.IsNullOrEmpty(Configuration))
            {
                Configuration = attr.Configuration;
            }
        }
Example #3
0
        private static void AddExtensionPointToBundle(Bundle bundle, ExtensionPointAttribute pointAttr)
        {
            if (pointAttr.BundleId != bundle.Id)
            {
                _logger.WarnFormat("扩展点 '{0}' 已经由 bundle '{1}' 提供,但程序集 '{2}' '{3}'.", pointAttr.Id, pointAttr.BundleId, bundle.AssemblyLocation, bundle.Id);
                return;
            }
            ExtensionPointConfiguration cfg;

            if (bundle._contributedExtensionPoints.TryGetValue(pointAttr.Id, out cfg))
            {
                cfg.Merge(pointAttr);
            }
            else
            {
                bundle.AddExtensionPointConfiguration(new ExtensionPointConfiguration(pointAttr));
            }
        }