public ExtensionPointConfiguration(ExtensionPointAttribute attribute) { Id = attribute.Id; BundleId = attribute.BundleId; Name = attribute.Name; Description = attribute.Description; Configuration = attribute.Configuration; }
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; } }
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)); } }