Forums Neueste Beiträge
 

Vorgehensweise - Settings - UserControls -DLL's/Exe

19/11/2008 - 20:03 von Sandra Baum | Report spam
Hallo,

Als Beispiel

folgende Idee:
UserControl1 -- DLL1 -- der erste will rote Textboxen
Textbox1 Ergebnis = Textbox1 rot
UserControl2 -- DLL2 -- der zweite will blaue Textboxen
Textbox1 Ergebnis = Textbox1 blau
UserControl3 -- DLL3 -- der dritte braucht eine weitere TextBox
und baut dann das Ergebnis zusammen.
Textbox1 + Textbox2 Ergebnis = Textbox1 + Textbox2

Hauptanwendung -- EXE

Normal ziehe es per Drag&Drop ja rein.
Somit ich ich 3 * ein Exe. -> Schlecht

Besser UserControlXY -- Interface/Vertrag/Contract -- Hauptanwendung/Exe

Jetzt soll der Anwender seine Applikation selbststàndig starten.

D.h. im Bin\Release Verzeichnis schaut man nach, welche
DLL's es gibt.
Gibt es mehrere werden diese mit Versionen angezeigt.
Der Bediener wàhlt diese aus die Hauptanwendung -- EXE startet mit dem
ausgewàhlten UI.

Vorteil:
Neues UserInterface, keine Änderung der EXE, nur Austausch der DLL.

Problem:
Wie macht man das?
Ähnlich diesem Link nur mit UI.
http://groups.google.de/group/micro...ea7cde82b3

Gibt es evtl. irgendwo ein Beispielprojekt?
a) mit UserInterface
b) àhnlich dem Link mit 2 Funktionen


Grüße Sandra


####################################################################################################################
DLL Nr.1
public static class DingsBums {
{
public static int TuWas(int a, int b)
{
return a+b;
}
}

DLL Nr.2
public static class DingsBums {
{
public static int TuWas(int a, int b)
{
return a*b;
}
}

Hier mal so grob in einer ConsoleApplication:
using System;
using System.Linq;
using System.Reflection;

namespace ReflectionSample
{
interface IPlugin
{
void Foo();
}

class Plugin : IPlugin
{
public void Foo()
{
Console.WriteLine("Foo");
}
}

class Program
{
static void Main(string[] args)
{
Assembly _assembly = Assembly.GetExecutingAssembly();

var _classes = from _type in _assembly.GetTypes()
from _interface in _type.GetInterfaces()
where _interface == typeof(IPlugin)
select _type;
foreach (var _class in _classes)
{
IPlugin _plugin = (IPlugin)Activator.CreateInstance(_class);
_plugin.Foo();
}
}
}
}
 

Lesen sie die antworten

#1 Frank Dzaebel
19/11/2008 - 20:16 | Warnen spam
Hallo Sandra,

bitte poste erstmal ein Feedback an Deine zahlreichen
anderen Postings. (z.B. ob's funktioniert es, o.à.)
Erst dann neue Fragen stellen. Allgemein auch mal
hier überfliegen:

[Newsgroup - Netikette]
http://support.microsoft.com/defaul...GNetikette
("... Posten Sie ein Feedback, ob der Lösungsvorschlag funktioniert hat.")


ciao Frank
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET

Ähnliche fragen