protected ResourceNode(ITreeNodeGroup treeNodeGroup, Resource resource) { if (treeNodeGroup == null || resource == null) throw new ArgumentNullException(); this.treeNodeGroup = treeNodeGroup; this.resource = resource; }
public void CopyTo(Resource resource) { switch (ResourceType) { case dnlib.DotNet.ResourceType.Embedded: // Always cast it to catch errors var er = (EmbeddedResource)resource; break; case dnlib.DotNet.ResourceType.AssemblyLinked: var al = (AssemblyLinkedResource)resource; Debug.Assert(this.Assembly != null); al.Assembly = this.Assembly; break; case dnlib.DotNet.ResourceType.Linked: var lr = (LinkedResource)resource; Debug.Assert(this.File != null); lr.File = this.File; break; default: throw new InvalidOperationException(); } resource.Name = this.Name; resource.Attributes = this.Attributes; }
public static ILSpyTreeNode Create(Resource resource) { ILSpyTreeNode result = null; foreach (var factory in App.CompositionContainer.GetExportedValues<IResourceNodeFactory>()) { result = factory.CreateNode(resource); if (result != null) break; } return result ?? new ResourceTreeNode(resource); }
public IResourceNode Create(ModuleDef module, Resource resource, ITreeNodeGroup treeNodeGroup) { var er = resource as EmbeddedResource; if (er == null) return null; er.Data.Position = 0; if (!CouldBeImage(er.Name, er.Data)) return null; return new ImageResourceNode(treeNodeGroup, er); }
public ResourceNode Create(ModuleDef module, Resource resource, ITreeNodeGroup treeNodeGroup) { var er = resource as EmbeddedResource; if (er == null) return null; er.Data.Position = 0; if (!ResourceReader.CouldBeResourcesFile(er.Data)) return null; er.Data.Position = 0; return new ResourceElementSetNodeImpl(treeNodeGroup, module, er); }
public IResourceNode Create(ModuleDef module, Resource resource, ITreeNodeGroup treeNodeGroup) { if (module == null || resource == null || treeNodeGroup == null) throw new ArgumentNullException(); foreach (var creator in creators) { try { var node = creator.Value.Create(module, resource, treeNodeGroup); if (node != null) return node; } catch { } } return new UnknownResourceNode(treeNodeGroup, resource); }
public ResourceNode Create(ModuleDef module, Resource resource, ITreeNodeGroup treeNodeGroup) { if (module == null) throw new ArgumentNullException(nameof(module)); if (resource == null) throw new ArgumentNullException(nameof(resource)); if (treeNodeGroup == null) throw new ArgumentNullException(nameof(treeNodeGroup)); foreach (var provider in resourceNodeProviders) { try { var node = provider.Value.Create(module, resource, treeNodeGroup); if (node != null) return node; } catch { } } return new UnknownResourceNodeImpl(treeNodeGroup, resource); }
public ResourceOptions(Resource resource) { this.ResourceType = resource.ResourceType; this.Name = resource.Name ?? UTF8String.Empty; this.Attributes = resource.Attributes; switch (resource.ResourceType) { case ResourceType.Embedded: break; case ResourceType.AssemblyLinked: this.Assembly = ((AssemblyLinkedResource)resource).Assembly; break; case ResourceType.Linked: this.File = ((LinkedResource)resource).File; break; default: throw new InvalidOperationException(); } }
public void Replace() { Debug.Assert(this.Index < this.Module.Resources.Count && this.Module.Resources[this.Index] == this.Node.Resource); if (NewResource == null) { this.Node.RegenerateEmbeddedResource(); this.NewResource = this.Node.Resource; } else this.Node.Resource = this.NewResource; this.Module.Resources[this.Index] = this.NewResource; }
public void Execute() { Debug.Assert(resource == rsrcSetNode.Resource); Debug.Assert(module.Resources[resourceIndex] == resource); if (nameChanged) { bool b = origParentChildIndex < rsrcSetNode.TreeNode.Children.Count && rsrcSetNode.TreeNode.Children[origParentChildIndex] == rsrcElNode.TreeNode; Debug.Assert(b); if (!b) throw new InvalidOperationException(); rsrcSetNode.TreeNode.Children.RemoveAt(origParentChildIndex); rsrcElNode.UpdateData(newOptions); rsrcSetNode.TreeNode.AddChild(rsrcElNode.TreeNode); } else rsrcElNode.UpdateData(newOptions); if (newResource == null) { rsrcSetNode.RegenerateEmbeddedResource(); newResource = rsrcSetNode.Resource; } else rsrcSetNode.Resource = newResource; module.Resources[resourceIndex] = newResource; rsrcElNode.TreeNode.RefreshUI(); }
public ModuleInfo(IResourceElementSetNode node) { if (node == null) throw new InvalidOperationException(); this.Node = node; var module = node.GetModule(); Debug.Assert(module != null); if (module == null) throw new InvalidOperationException(); this.Module = module; this.Index = module.Resources.IndexOf(node.Resource); Debug.Assert(this.Index >= 0); if (this.Index < 0) throw new InvalidOperationException(); this.Resource = node.Resource; }
public ModelInfo(ModuleDef module, Resource rsrc) { this.OwnerModule = module; this.Index = module.Resources.IndexOf(rsrc); Debug.Assert(this.Index >= 0); if (this.Index < 0) throw new InvalidOperationException(); }
protected ResourceElementSettingsBaseCommand(IResourceElementNode rsrcElNode, ResourceElementOptions options) { this.rsrcSetNode = (IResourceElementSetNode)rsrcElNode.TreeNode.Parent.Data; this.rsrcElNode = rsrcElNode; this.newOptions = options.Create(); this.origOptions = rsrcElNode.ResourceElement; this.module = rsrcSetNode.GetModule(); Debug.Assert(this.module != null); this.resource = rsrcSetNode.Resource; this.resourceIndex = module.Resources.IndexOf(this.resource); Debug.Assert(this.resourceIndex >= 0); if (this.resourceIndex < 0) throw new InvalidOperationException(); this.origParentChildIndex = this.rsrcSetNode.TreeNode.Children.IndexOf(rsrcElNode.TreeNode); Debug.Assert(this.origParentChildIndex >= 0); if (this.origParentChildIndex < 0) throw new InvalidOperationException(); this.nameChanged = origOptions.Name != newOptions.Name; }
public RenameInfo(Resource resource, TypeInfo typeInfo, string newResourceName) { this.resource = resource; this.typeInfo = typeInfo; this.newResourceName = newResourceName; }
public ILSpyTreeNode CreateNode(Resource resource) { return null; }
public ILSpyTreeNode CreateNode(Resource resource) { EmbeddedResource er = resource as EmbeddedResource; if (er != null) return CreateNode(er.Name, er.GetResourceStream()); return null; }
/// <summary> /// Constructor /// </summary> /// <param name="treeNodeGroup">Treenode group</param> /// <param name="resource">Resource</param> protected ResourceElementSetNode(ITreeNodeGroup treeNodeGroup, Resource resource) : base(treeNodeGroup, resource) { }
public ILSpyTreeNode CreateNode(Resource resource) { EmbeddedResource er = resource as EmbeddedResource; if (er != null && er.Name.String.EndsWith(".resources", StringComparison.OrdinalIgnoreCase)) { return new ResourcesFileTreeNode(er); } return null; }
public UnknownResourceTreeNode(Resource resource) : base(resource) { }
public UnknownResourceNode(ITreeNodeGroup treeNodeGroup, Resource resource) : base(treeNodeGroup, resource) { }
public void Replace() { Debug.Assert(Index < Module.Resources.Count && Module.Resources[Index] == Node.Resource); if (NewResource == null) { Node.RegenerateEmbeddedResource(); NewResource = Node.Resource; } else Node.Resource = NewResource; Module.Resources[Index] = NewResource; }
public ResourceTreeNode(Resource r) { if (r == null) throw new ArgumentNullException("r"); this.r = r; }
public void Restore() { Debug.Assert(this.Index < this.Module.Resources.Count && this.Module.Resources[this.Index] == this.Node.Resource); this.Node.Resource = this.Resource; this.Module.Resources[this.Index] = this.Resource; }
protected CreateResourceElementCommandBase(IResourceElementSetNode rsrcSetNode, IResourceElementNode[] nodes) { this.module = rsrcSetNode.GetModule(); Debug.Assert(this.module != null); this.rsrcSetNode = rsrcSetNode; this.nodes = nodes; this.resource = rsrcSetNode.Resource; this.resourceIndex = module.Resources.IndexOf(this.resource); Debug.Assert(this.resourceIndex >= 0); if (this.resourceIndex < 0) throw new InvalidOperationException(); }
public bool Add(Resource resource) { var name = resource.Name.String; int index = name.LastIndexOf('.'); string ext; if (index < 0) ext = name; else ext = name.Substring(index + 1); uint extNum; if (!uint.TryParse(ext, out extNum)) return false; var ns = index < 0 ? string.Empty : name.Substring(0, index); resources.Add(new Key(extNum, ns), resource); return true; }
public void Execute() { Debug.Assert(resource == rsrcSetNode.Resource); Debug.Assert(module.Resources[resourceIndex] == resource); foreach (var node in nodes) rsrcSetNode.TreeNode.AddChild(node.TreeNode); if (newResource == null) { rsrcSetNode.RegenerateEmbeddedResource(); newResource = rsrcSetNode.Resource; } else rsrcSetNode.Resource = newResource; module.Resources[resourceIndex] = newResource; }
protected ResourceTreeNode(Resource r) { this.r = r; }
public IResourceNode Create(ModuleDef module, Resource resource, ITreeNodeGroup treeNodeGroup) { return null; }
public ILSpyTreeNode FindResourceNode(Resource resource) { if (resource == null) return null; foreach (AssemblyTreeNode node in this.Children) { if (node.LoadedAssembly.IsLoaded) { node.EnsureLazyChildren(); foreach (var item in node.Children.OfType<ResourceListTreeNode>()) { var founded = item.Children.OfType<ResourceTreeNode>().Where(x => x.Resource == resource).FirstOrDefault(); if (founded != null) return founded; var foundedResEntry = item.Children.OfType<ResourceEntryNode>().Where(x => resource.Name.Equals(x.ToString())).FirstOrDefault(); if (foundedResEntry != null) return foundedResEntry; } } } return null; }
internal static bool IsPublicAPIInternal(Resource r) { return (r.Attributes & ManifestResourceAttributes.VisibilityMask) != ManifestResourceAttributes.Private; }