コード例 #1
0
        public void LoadAssembly(AssemblyStream source, AssemblyDefinition definition, bool raiseEvent = true)
        {
            Debug.Assert(source != null, "Source cannot be null");
            Debug.Assert(definition != null, "Definition cannot be null");

            // do nothing if assembly instance already exists
            if (_assemblies.Contains(definition))
            {
                return;
            }

            // check whether different instance of this assembly already exists
            var existing = _assemblies.FirstOrDefault(asm => asm.FullName.Equals(definition.FullName, StringComparison.OrdinalIgnoreCase));

            // remove existing instance as we may want to update assembly
            if (existing != null)
            {
                _assemblies.Remove(existing);
            }

            // register new instance
            _assemblies.Add(definition);

            // cache reference to source stream
            _assemblyStreams[definition] = source;

            // raise appropriate event
            if (raiseEvent)
            {
                OnAssemblyAdded(definition, source);
            }
        }
コード例 #2
0
        private void OnAssemblyRemoved(AssemblyDefinition definition, AssemblyStream source)
        {
            var handler = AssemblyRemoved;

            if (handler != null)
            {
                handler(this, new AssemblyDefinitionEventArgs(definition, source));
            }
        }
コード例 #3
0
ファイル: FileNode.cs プロジェクト: DenisVuyka/IL.View
    public FileNode(AssemblyStream source, string resourcePath)
      : base(null)
    {
      if (source == null) throw new ArgumentNullException("source");
      if (string.IsNullOrWhiteSpace(resourcePath)) throw new ArgumentNullException("resourcePath");

      _source = source;
      _resourcePath = resourcePath;
      _fileName = Path.GetFileName(_resourcePath);
      
      _extension = Path.GetExtension(_fileName);
      if (!string.IsNullOrEmpty(_extension)) _extension = _extension.ToLowerInvariant();

      Header = CreateHeaderCore(DefaultImages.AssemblyBrowser.GetFileIcon(_fileName), null, resourcePath, true);
      DefaultStyleKey = typeof(FileNode);
      CompositionInitializer.SatisfyImports(this);
    }
コード例 #4
0
ファイル: AssemblyCache.cs プロジェクト: DenisVuyka/IL.View
    public void LoadAssembly(AssemblyStream source, AssemblyDefinition definition, bool raiseEvent = true)
    {
      Debug.Assert(source != null, "Source cannot be null");
      Debug.Assert(definition != null, "Definition cannot be null");

      // do nothing if assembly instance already exists
      if (_assemblies.Contains(definition)) return;

      // check whether different instance of this assembly already exists
      var existing = _assemblies.FirstOrDefault(asm => asm.FullName.Equals(definition.FullName, StringComparison.OrdinalIgnoreCase));
      // remove existing instance as we may want to update assembly
      if (existing != null) _assemblies.Remove(existing);

      // register new instance
      _assemblies.Add(definition);

      // cache reference to source stream
      _assemblyStreams[definition] = source;

      // raise appropriate event
      if (raiseEvent) OnAssemblyAdded(definition, source);
    }
コード例 #5
0
 public void LoadAssembly(AssemblyStream source, bool raiseEvent = true)
 {
     LoadAssembly(source, AssemblyDefinition.ReadAssembly(source.OpenRead()), raiseEvent);
 }
コード例 #6
0
 public AssemblyDefinitionEventArgs(AssemblyDefinition definition, AssemblyStream source)
 {
     Definition = definition;
     Source     = source;
 }
コード例 #7
0
ファイル: AssemblyCache.cs プロジェクト: DenisVuyka/IL.View
 public void LoadAssembly(AssemblyStream source, bool raiseEvent = true)
 {
   LoadAssembly(source, AssemblyDefinition.ReadAssembly(source.OpenRead()), raiseEvent);
 }
コード例 #8
0
ファイル: AssemblyCache.cs プロジェクト: DenisVuyka/IL.View
 private void OnAssemblyRemoved(AssemblyDefinition definition, AssemblyStream source)
 {
   var handler = AssemblyRemoved;
   if (handler != null) handler(this, new AssemblyDefinitionEventArgs(definition, source));
 }
コード例 #9
0
 public AssemblyDefinitionEventArgs(AssemblyDefinition definition, AssemblyStream source)
 {
   Definition = definition;
   Source = source;
 }
コード例 #10
0
ファイル: Home.xaml.cs プロジェクト: DenisVuyka/IL.View
 private void LoadOrReplaceAssembly(AssemblyDefinition definition, AssemblyStream source)
 {
   var assemblyView = new AssemblyNode(definition, source);
   AddOrReplaceAssemblyView(definition.IsSilverlight() ? SilverlightAssemblies : NetAssemblies, assemblyView);
 }
コード例 #11
0
ファイル: Home.xaml.cs プロジェクト: DenisVuyka/IL.View
    private void LoadAssembly(AssemblyDefinition definition, AssemblyStream source)
    {
      var node = new AssemblyNode(definition, source);

      if (definition.IsSilverlight())
        SilverlightAssemblies.Items.Add(node);
      else
        NetAssemblies.Items.Add(node);
    }