public void AddAssemblyPartItem(ManifestAssemblyPartItem item) { if (!AssemblyPartsToAdd.Any(p => p.Source.ToLower() == item.Source.ToLower())) { AssemblyPartsToAdd.Add(item); } }
private SilverlightManifestAnalysisResult ParseManifestContent(string manifestContent) { var result = new SilverlightManifestAnalysisResult(); var manifest = XDocument.Parse(manifestContent); if (manifest.Root == null) { throw new Exception("Manifest does not have Root element"); } var entryPointAssemblyAttribute = manifest.Root.Attribute("EntryPointAssembly"); result.EntryPointAssemblyName = entryPointAssemblyAttribute != null ? entryPointAssemblyAttribute.Value : null; var entryPointTypeAttribute = manifest.Root.Attribute("EntryPointType"); result.EntryPointTypeName = entryPointTypeAttribute != null ? entryPointTypeAttribute.Value : null; var manifestItems = manifest.Root.Descendants().First().Descendants(); result.AssemblyPartItems.Clear(); foreach (var manifestItem in manifestItems) { var name = manifestItem.Attribute(_nameAttributeName); var source = manifestItem.Attribute("Source"); if (name != null && source != null) { var nameValue = name.Value; var sourceValue = source.Value; if (!string.IsNullOrEmpty(nameValue) && !string.IsNullOrEmpty(sourceValue)) { var currentAssemblyPart = new ManifestAssemblyPartItem() { Source = sourceValue, Name = nameValue }; result.AssemblyPartItems.Add(currentAssemblyPart); if (!string.IsNullOrEmpty(result.EntryPointAssemblyName)) { if (currentAssemblyPart.Name == result.EntryPointAssemblyName) { result.EntryPointAssemblyDllName = currentAssemblyPart.Source; } } } } } return result; }