Avatar billede the_party_dog Nybegynder
24. juli 2006 - 15:02 Der er 4 kommentarer og
2 løsninger

Dll, events og delegates

Hej alle sammen.

Jeg er ved at kigge på noget C# 2.0, hvor jeg vil lave mig en lille DLL fil til at håndtere kommunikation og initialisering af et SerialPort objekt.

Det jeg ønsker det er at når min DataReceived Event fra mit SerialPort objekt sker, vil jeg gerne have den til at "advare" det program som nu benytter dll filen. Hvis jeg bare havde lavet det som almindelig klasse, ved jeg godt hvordan man ville håndtere det vha. delegates. Men på den måde skal jeg jo "kende" den som kalder mig, så jeg lave min Invoke på den delegate som jeg gerne vil aktivere.

Hvis jeg nu ikke kender den som kalder mig, skal jeg så over i noget reflection, for at finde frem til en delegate? Kan jeg stille krav til den delegate jeg leder efter? Eller skal jeg bare skrive i min dokumentation at jeg forventer at der kun findes en delegate og det er den som min dll fil skal benytte?

Det hele drejer sig om at jeg laver noget research arbejde for en afdeling der bruger meget serial port. Så i stedet for folk hele tiden skal opfinde den dybe tallerken, skal de bare bruge min dll fil. Det vil også gøre det nemmer at lave udvidelse og vedligehold i koden, da alle benytter de samme indstillinger.

Nogen som har en god idé?
Avatar billede nielle Nybegynder
24. juli 2006 - 19:07 #1
Hvis du definere en event i din klasse (i din DLL), så skal de programmer som bruger DLL'en bare koble sig på eventen når de starter op. I din DLL skal du så bare kalde eventen (hvis den vel at mærke ikke mere er null), og de anvendende programmer vil automatisk få besked.
Avatar billede segato Nybegynder
25. juli 2006 - 08:08 #2
Du kan sagtens bruge reflections til at kalde events. Men det giver umiddelbart ingen mening da events er total afkoplet fra dens brugere som nielle påpeger.
Avatar billede nielle Nybegynder
31. juli 2006 - 19:02 #3
Hvad med noget respons?
Avatar billede the_party_dog Nybegynder
31. juli 2006 - 22:17 #4
I smider bare nogle svar, så fordeles points. Har helt glemt mit spørgsmål, da jeg har siddet og hygget mig med events. :)
Avatar billede nielle Nybegynder
31. juli 2006 - 22:56 #5
Svar :^)
Avatar billede segato Nybegynder
01. august 2006 - 08:18 #6
Svar
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

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