Avatar billede wmann Nybegynder
28. juli 2008 - 15:14 Der er 9 kommentarer og
1 løsning

Finde referencer til API

Der har i nogen tid været snak om vi skulle lave et API til en gren af de programmer vi udvikler værtøjer til så vi kunne genbruge hinandens dybe tallerkener og synes det alletiders ide.
MEN..
ville jo være ret genialt hvis vi kunne lave et stort fælles api, som alle fylder til som fx:

namespace Developer_API
{
    public class CompanyName
    {
        public static ProgramType1 PROGRAM1
        {
            get{return new ProgramType1();}
        }

        public static ProgramType2 PROGRAM2
        {
            get{return new ProgramType2();}
        }

        etc..
    }
}

Og at hver programtype så har hver deres specielle metoder etc. til det de skal bruge.
Så kommer problemet self. i at hvis du ligger det på en maskine der kun har ProgramType1 installeret vil den mangle referencerne til de andre funktionaliteter..
Det er self. ligegyldigt hvis du ikke skal bruge denne funktionalitet, MEN hvis man nu pludselig vil forsøge og de mangler ville det være fedt selv at starte med at undersøge om de refererede DLL'er kan findes.
Nogen der kender en metode til dette så man selv kunne komme med noget brugbart i disse tilfælde?

Man kan self. også vælge at ligge alle lokalt ved API'et UDEN at registrere dem(ellers gir det problemer) men lidt noget rod og specielt hvis man ikke skal bruge andet end den ene programtype..
Avatar billede arne_v Ekspert
29. juli 2008 - 04:09 #1
Det kan testes med reflection.
Avatar billede arne_v Ekspert
29. juli 2008 - 04:25 #2
try
{
    Assembly asm = Assembly.Load(dllname);
    IAllClasses o = asm.CreateInstance(classname);
}
catch(Exception ex)
{
    // Houston we have a problem
}
Avatar billede wmann Nybegynder
29. juli 2008 - 09:24 #3
Og så skal jeg bare skrive samme dll-navn som vises i vs?
Og skal den inkludere .dll?
Avatar billede arne_v Ekspert
29. juli 2008 - 17:38 #4
Der er baade en Load og en LoadFrom. Check docs for detaljer. Som jeg husker det skal
Load kun have navnet mens LoadFrom skal have fuld filnavn.

.Load("Foobar")

og

.LoadFrom(@"C:\Foobar.dll")
Avatar billede wmann Nybegynder
30. juli 2008 - 08:26 #5
mange tak arne.
hvis du afgiver svar får du lige point..
Avatar billede arne_v Ekspert
30. juli 2008 - 15:02 #6
svar
Avatar billede arne_v Ekspert
29. august 2008 - 02:41 #7
så mangler du bare at acceptere svaret
Avatar billede wmann Nybegynder
29. august 2008 - 08:28 #8
Så det accepteret
Avatar billede arne_v Ekspert
29. august 2008 - 15:52 #9
faktisk ikke

tricket er at du skal markere mit navn ude i combo boxen saa det bliver blaat inden
du klikker accepter
Avatar billede wmann Nybegynder
01. september 2008 - 09:49 #10
så! ;)
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