public override void Add(IPackage pck) { if (!this.Packages.Keys.Contains(pck.Name)) { var pckinfo = pck.PackageInfo; pckinfo.FID = this.NameManager.NextFID(); pckinfo.FileName = string.Format("{0}{1}{2}", InputDic, Project.Name, pckinfo.FileExtension); pckinfo.WorkDirectory = this.WorkDirectory; pck.FileName = pckinfo.FileName; pck.Owner = this; pck.Clear(); pck.Initialize(); pck.New(); Packages.Add(pck.Name, pck); NameManager.Add(pckinfo); MFOutputPackage mfout = this.Select(MFOutputPackage.PackageName) as MFOutputPackage; (pck as IMFPackage).CompositeOutput(mfout); if (this.Owner != null) { Owner.OnPackageAdded(pck); } else { this.OnPackageAdded(pck); } } }