Avatar billede kewl Nybegynder
05. april 2008 - 21:46 Der er 9 kommentarer

Hvordan finder jeg 'Default namespace' i en dll?

Jeg er ved at lave en lille applikation som kan finde nogle informationer bla. 'Default namespace'

jeg har resten af informationerne, Assembly name, Public token, og version.

Nogen som har et bud?
Avatar billede arne_v Ekspert
05. april 2008 - 22:24 #1
Hvad mener du med default namespace ?
Avatar billede kewl Nybegynder
05. april 2008 - 23:08 #2
i Visual Studio, Properties på et projekt, Application > der står 'Assembly name' og Default namespace.

hvis det ikke er muligt med default namespace, så er listen med alle namespaces også ok.
Avatar billede kewl Nybegynder
05. april 2008 - 23:10 #3
ps. det er til web.config jeg skal bruge disse info.
Når man laver Webparts, skal man adde nogle SafeControls, som vil have disse informationer.
Avatar billede arne_v Ekspert
05. april 2008 - 23:21 #4
public class AssemblyUtil
    {
        public delegate void Process(string clznam);
        public static void ListAssembly(string asmnam, Process p)
        {
            Assembly asm = Assembly.LoadFile(asmnam);
            Type[] types = asm.GetExportedTypes();
            foreach(Type t in types)
            {
                p(t.FullName);
            }
        }
    }

kan hente alle klassenavne i en dll. Så skal du bare fiske namespace ud af det.
Avatar billede kewl Nybegynder
05. april 2008 - 23:29 #5
Den fejler ved

Type[] types = asm.GetExportedTypes();

når jeg loader en dll, som har en refrence til Microsoft.SharePoint.dll

exceptionMessage =
Could not load file or assembly 'Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c' or one of its dependencies. The system cannot find the file specified.
Avatar billede kewl Nybegynder
06. april 2008 - 00:16 #6
Hvis jeg smider Microsoft.SharePoint.dll, i GAC virker det, men er det ikke muligt at læse Namespace fra en dll, som har refrences til filer som ikke er installeret på maskinen?
Avatar billede arne_v Ekspert
06. april 2008 - 01:04 #7
Jeg kender ikke umiddelbart nogen måde at loade en assembly som ikke kan loades p.g.a.
manglende referencer.

Du behøver dog næppe bruge GAC. Du kan bare manuelt loade de pågældende assemblies inden
du loader den du er interesseret i.
Avatar billede hmortensen Nybegynder
06. april 2008 - 11:37 #8
Du kan nok bruge flg. metode: Assembly.GetReferencedAssemblies()
http://msdn2.microsoft.com/en-us/library/system.reflection.assembly.getreferencedassemblies.aspx
Avatar billede arne_v Ekspert
05. maj 2008 - 05:42 #9
kewl ?
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