Hallo allemaal,
ik heb volgende code:
bot.cs
classes.cs
en ai.cs:
Ik probeer dus in bot.cs de klasse BotAI (van het type IBotAI) dynamisch in te laden en te gebruiken.
Maar ik krijg volgende fout als ik bot.exe start:
Dit fout wordt veroorzaakt op de achtste regel van bot.cs. Maar ik vind niet wat er fout is: ik kan dat toch omzetten naar IBotAI ?
Ah nog iets: ik maak gebruik van Mono onder linux en niet van de ms .net framework, zou dit een verschil kunnen maken ?
Alvast bedankt om eens te kijken
ik heb volgende code:
bot.cs
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| using System;
using System.Reflection;
public class AI {
public string MakeAI() {
Assembly asm = Assembly.LoadFrom("ai.dll");
botAI = (IBotAI) asm.CreateInstance("BotAI");
return "";
}
IBotAI botAI = null;
}
public class Bot {
public static void Main(string[] args) {
AI a = new AI();
Console.WriteLine(a.MakeAI());
}
} |
classes.cs
code:
1
2
3
4
| public interface IBotAI {
string MakeAI();
void test(string a);
} |
en ai.cs:
code:
1
2
3
4
5
6
7
8
| using System;
public class BotAI : IBotAI {
public string MakeAI() {
Console.WriteLine("test");
return "a";
}
} |
Ik probeer dus in bot.cs de klasse BotAI (van het type IBotAI) dynamisch in te laden en te gebruiken.
Maar ik krijg volgende fout als ik bot.exe start:
code:
1
2
3
| Unhandled Exception: System.InvalidCastException: Cannot cast from source type to destination type. in <0x00053> AI:MakeAI () in <0x00026> Bot:Main (System.String[] args) |
Dit fout wordt veroorzaakt op de achtste regel van bot.cs. Maar ik vind niet wat er fout is: ik kan dat toch omzetten naar IBotAI ?
Ah nog iets: ik maak gebruik van Mono onder linux en niet van de ms .net framework, zou dit een verschil kunnen maken ?
Alvast bedankt om eens te kijken
[ Voor 9% gewijzigd door Verwijderd op 07-07-2005 17:08 ]