コード例 #1
0
 public void RaiseAssemblyAdded(AssemblyAddedEventArgs args)
 {
     if (this.assemblyAdded != null)
     {
         this.assemblyAdded(this, args);
     }
 }
コード例 #2
0
        public void OnAssemblyAddedShouldRaisePluginFoundForEachPluginInAssembly()
        {
            MockAssemblySource mockSource = new MockAssemblySource();
              PluginExtractor tested = new PluginExtractor(mockSource);

              List<PluginDescriptor> plugins = new List<PluginDescriptor>();
              tested.PluginAdded += (s, e) => plugins.Add(e.Plugin);

              using (AssemblyReflectionManager manager = new AssemblyReflectionManager())
              {
            string assemblyPath = GetType().Assembly.Location;
            manager.LoadAssembly(assemblyPath);
            AssemblyAddedEventArgs args = new AssemblyAddedEventArgs(assemblyPath, manager);
            mockSource.RaiseAssemblyAdded(args);
              }

              Assert.AreEqual(3, plugins.Count);
              Assert.IsTrue(plugins.Contains(MockPluginDescriptor.For<MockPlugin1>()));
              Assert.IsTrue(plugins.Contains(MockPluginDescriptor.For<MockPlugin2>()));
              Assert.IsTrue(plugins.Contains(MockPluginDescriptor.For<MockPlugin3>()));
        }
コード例 #3
0
        public void OnAssemblyAddedShouldRaisePluginFoundForEachPluginInAssembly()
        {
            MockAssemblySource mockSource = new MockAssemblySource();
            PluginExtractor    tested     = new PluginExtractor(mockSource);

            List <PluginDescriptor> plugins = new List <PluginDescriptor>();

            tested.PluginAdded += (s, e) => plugins.Add(e.Plugin);

            using (AssemblyReflectionManager manager = new AssemblyReflectionManager())
            {
                string assemblyPath = GetType().Assembly.Location;
                manager.LoadAssembly(assemblyPath);
                AssemblyAddedEventArgs args = new AssemblyAddedEventArgs(assemblyPath, manager);
                mockSource.RaiseAssemblyAdded(args);
            }

            Assert.AreEqual(3, plugins.Count);
            Assert.IsTrue(plugins.Contains(MockPluginDescriptor.For <MockPlugin1>()));
            Assert.IsTrue(plugins.Contains(MockPluginDescriptor.For <MockPlugin2>()));
            Assert.IsTrue(plugins.Contains(MockPluginDescriptor.For <MockPlugin3>()));
        }
コード例 #4
0
 /// <summary>
 /// Called when a new assembly is reported from the assembly source.
 /// The new assembly is examined through reflection and events for found plugins are raised on the <see cref="IPluginSource"/> interface.
 /// </summary>
 /// <param name="sender">The sender.</param>
 /// <param name="e">The <see cref="AssemblyAddedEventArgs"/> instance containing the event data.</param>
 private void OnAssemblyAdded(object sender, AssemblyAddedEventArgs e)
 {
     var plugins = e.Reflect(assembly => ExtractPlugins(assembly));
       RemovePlugins(e.AssemblyId);
       AddPlugins(e.AssemblyId, plugins);
 }
コード例 #5
0
 public void RaiseAssemblyAdded(AssemblyAddedEventArgs args)
 {
     if (this.assemblyAdded != null)
     this.assemblyAdded(this, args);
 }