Avatar billede sovsekoder Nybegynder
25. juli 2004 - 21:25 Der er 6 kommentarer og
1 løsning

.NET reflection

Jeg skal ha' lavet et C# windows program (X), der kan køre et eller flere "add-in" moduler. Add-in modulet køres således at det får dens egen tab på (X)'s form - modulet adderes til tab'en som en kontrol, og skal derfor nedarve fra en control. Jeg har tænkt mig at gøre det på følgende måde:

1) Definere et interface IAddIn med nødvendige metoder.
2) IAddIn kompileres som dll, og registreres i GAC'en når (X) installeres.
3) Alle Add-in moduler skal implementere IAddIn.
4) (X) ved præcis hvad modulet hedder og hvor det ligger på harddisken
5) (X) starter et modul ved at addere det på en ny tab. (X) kommunikerer med modulet vha IAddIn.

Metoden virker, men jeg har nogle spørgsmål:

Interfacet skal udbygges, hvilket betyder at (X) skal udgives i en ny version.

* Hvad kalder man det nye interface?

* Kan det lade sig gøre at beholde det gamle navn IAddIn og stadig være i stand til at supportere forskellige versioner af IAddIn?

* Hvad gør man for at understøtte alle tidligere interfaces?
Avatar billede sovsekoder Nybegynder
25. juli 2004 - 21:29 #1
den umiddelbare løsning er at kalde det nye interface: IAddIn2

- og i (X) håndtere det på følgende måde (pseudo kode)

IF (assembly supports IAddIn) THEN
    // Add-In module uses first version of IAddIn
    Set Flag that indicates we need to use IAddIn with this module
ELSE IF (assembly supports IAddIn2)
    // Add-In module uses second version of IAddIn (IAddIn2)
    Set Flag that indicates we need to use IAddIn2 with this module
END IF
Avatar billede wisen Nybegynder
26. juli 2004 - 09:12 #2
Normal lader man en ny version af et interface arve fra den gamle - det vil sige at IAddIn2 bør arve fra IAddin. Du skal derfor teste på om modulet understøtter den nyeste version af interfacet først.
Avatar billede sovsekoder Nybegynder
26. juli 2004 - 09:34 #3
tak, god pointe :)
Avatar billede sovsekoder Nybegynder
26. juli 2004 - 09:59 #4
men er den løsning som jeg skrev måden at gøre det på ?
Avatar billede wisen Nybegynder
26. juli 2004 - 10:36 #5
Ja, det er en fin måde - men som sagt skal du teste i omvendt rækkefølge
Avatar billede sovsekoder Nybegynder
26. juli 2004 - 21:48 #6
tak. du får point
Avatar billede wisen Nybegynder
27. juli 2004 - 08:51 #7
Takker :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester