Resten kan man med garaenti også få fat på, inklusive dem du selv måtte finde på at lægge der ind, men dette kræver noget Reflektion som jeg ikke lige har styr på lige nu og her.
Assembly a = Assembly.GetExecutingAssembly(); object [] attributes = a.GetCustomAttributes(false);
Så har du alle attributterne. Hvert object i attributes er af en type der arver fra System.Attribute (f.eks. System.Reflection.AssemblyKeyNameAttribute), og hvert af objekterne har en property, der angiver indholdet af attributten.
Der lader ikke til at være en nem måde at få fat på navn og indhold af alle attributterne, da property'en, der returnerer indholdet, hedder noget forskelligt fra attribut til attribut. Men du kan gøre noget i retning af:
using System; using System.Reflection;
namespace apptest { public class Test { public static void Main(string [] args) { Assembly a = Assembly.GetExecutingAssembly(); object [] attributes = a.GetCustomAttributes(false); foreach(object o in attributes) Console.WriteLine(o.ToString() + "\t: " + GetAttributeContent((Attribute)o)); }
public static string GetAttributeContent(Attribute att) { Type t = att.GetType(); PropertyInfo [] props = t.GetProperties(); if ( props != null && props.Length > 0 ) { MethodInfo mi = props[0].GetGetMethod(); return mi.Invoke(att,null) as string; } else return null; } } }
Synes godt om
Slettet bruger
26. november 2005 - 21:12#6
Niellse smid også lige et svar, så deler i, tak for svarene
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.