ich eine Funktion fürPlugins in winform Anwendung
namespace MFDBAnalyser
{
public class PluginManager
{
/// <summary>
/// This function gets the name of the plugins and return that in a datatable dt.
/// </summary>
/// <param name="args"></param>
/// <returns></returns>
static void Main(string[] args)
{
List<string> assemblyNames = new List<string>();
Assembly[] oAssemblies = new Assembly[args.Length];
for(int assemblyCount = 0;assemblyCount < args.Length;assemblyCount++)
{
oAssemblies[assemblyCount] = Assembly.LoadFile(args[assemblyCount]);
try
{
foreach(Type oType in oAssemblies[assemblyCount].GetTypes())
{
// Check whether class is inheriting from IMFServicePlugin.
if(oType.GetInterface("IMFDBAnalyserPlugin") == typeof(IMFDBAnalyserPlugin))
{
assemblyNames.Add(args[assemblyCount].Substring(args[assemblyCount].LastIndexOf("\\") + 1));
}
}
}
catch(Exception ex)
{
EventLog log = new EventLog("Application");
log.Source = "MFPluggerService";
log.WriteEntry(ex.Message);
}
}
// Passing data one application domain to another.
AppDomain.CurrentDomain.SetData("AssemblyNames", assemblyNames.ToArray());
}
}
}
im Repository alle DLL-Laden und eine andere Schnittstelle Klasse wie diese
public interface IMFDBAnalyserPlugin
{
string RunAnalysis(string ConnectionString);
}
Was ich brauche, ist die Zeichenfolge zurück, die ich schrieb in der RunAnalysis Methode
Aber es hat eine Program.cs Klasse als Haupteingangspunkt für t er Anwendung.
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new MFDBAnalyser());
}
}
}
So zeigt es den Fehler, dass keine zwei Haupt dort in einer Anwendung sein können. Ich brauche die Methoden Feuer von den pliginmanager.cs
Ich bin sehr verwirrt ... Can u Jungs haben bitte an meinem Problem
Benutzt du die 'PluginManager' Klasse direkt? Wenn ja, hör auf damit. Die nächste seltsame Sache ist, dass "MFDBAnalyser" ein Namespace ist und daher nicht mit "neu" instanziiert werden kann. Versteh mich nicht falsch, aber deine Codebeispiele enthalten etwas, das entweder faul oder sehr falsch ist. – Bobby
Ich stimme Bobby zu, Ihre Codebeispiele sind Bizarres. –