Beste tweakers,
Ik ben een application server aan het schrijven die automatisch plugins moet kunnen detecteren en gegevens over gevonden applicaties in een assembly in een database moet opslaan.
Nu ben ik aan de slag gegaan met custom attributes en heb ik heel wat tutorials er op nageslagen, maar om de 1 of andere reden werkt het nog steeds niet.
Ik gebruik de volgende code om types en attributes te doorzoeken:
Dit schijnt prima te werken en ik krijg netjes een lijstje terug. Echter, als ik nu gegevens uit een attribute wil lezen door hem te casten gaat het fout.
Als ik bijv. een custom attribute heb dat PluginInfo heet, dan geeft de volgende code een fout:
PluginInfo info = (PluginInfo)customAttr;
De fout die ik krijg is dan: Unable to cast object of type 'AppLib.PluginInfo' to type 'AppLib.PluginInfo'.
Eerst dacht ik dat het misschien kwam omdat het verschillende versies waren, maar na een hercompilatie van alles heb ik dat uitgesloten. Als ik op internet zoek naar tutorials over hoe ik custom attributes uit een assembly moet lezen, doen ze het op dezelfde manier als ik
Voorbeeld:
http://www.devx.com/codemag/Article/16706/0/page/4
Iemand enig idee naar wat ik moet kijken?
Bij voorbaat dank
Ik ben een application server aan het schrijven die automatisch plugins moet kunnen detecteren en gegevens over gevonden applicaties in een assembly in een database moet opslaan.
Nu ben ik aan de slag gegaan met custom attributes en heb ik heel wat tutorials er op nageslagen, maar om de 1 of andere reden werkt het nog steeds niet.
Ik gebruik de volgende code om types en attributes te doorzoeken:
code:
1
2
3
4
5
6
7
8
9
10
11
12
| Assembly asm = Assembly.LoadFrom(fullPath);
Type [] typesInAssembly = asm.GetTypes();
foreach (Type type in typesInAssembly)
{
Trace.TraceInformation("Found type : {0}", type.FullName);
foreach (Object customAttr in type.GetCustomAttributes(false))
{
Trace.TraceInformation("Found custom attribute : {0}", customAttr.GetType().FullName);
}
} |
Dit schijnt prima te werken en ik krijg netjes een lijstje terug. Echter, als ik nu gegevens uit een attribute wil lezen door hem te casten gaat het fout.
Als ik bijv. een custom attribute heb dat PluginInfo heet, dan geeft de volgende code een fout:
PluginInfo info = (PluginInfo)customAttr;
De fout die ik krijg is dan: Unable to cast object of type 'AppLib.PluginInfo' to type 'AppLib.PluginInfo'.
Eerst dacht ik dat het misschien kwam omdat het verschillende versies waren, maar na een hercompilatie van alles heb ik dat uitgesloten. Als ik op internet zoek naar tutorials over hoe ik custom attributes uit een assembly moet lezen, doen ze het op dezelfde manier als ik
Voorbeeld:
http://www.devx.com/codemag/Article/16706/0/page/4
Iemand enig idee naar wat ik moet kijken?
Bij voorbaat dank
Ask yourself if you are happy and then you cease to be.