mboost-dp1
Plugin udvikling i Java / C#
- Forside
- ⟨
- Forum
- ⟨
- Programmering
#1
Systemet har et interface som alle plugins skal implementere.
Den der skal lave et plugin skriver en klasse som implenterer dette interface. Den klasse og diverse hjælpe klasser compiles til en jar fil (Java) eller dll fil (.NET).
Systemet kan så instantiere en instans af klassen fra den jar/dll og kalde metoderne i interfacet.
Det var princippet.
Jeg kan godt give dig lidt kode til hvordan du loader klassen, hvis det har interesse.
Systemet har et interface som alle plugins skal implementere.
Den der skal lave et plugin skriver en klasse som implenterer dette interface. Den klasse og diverse hjælpe klasser compiles til en jar fil (Java) eller dll fil (.NET).
Systemet kan så instantiere en instans af klassen fra den jar/dll og kalde metoderne i interfacet.
Det var princippet.
Jeg kan godt give dig lidt kode til hvordan du loader klassen, hvis det har interesse.
Hehe, arne_v, du er en kendt bruger både her og på exp.dk
men vil alligevel lige smide linket til artiklen fra exp
http://www.eksperten.dk/artikler/1164?
men vil alligevel lige smide linket til artiklen fra exp
http://www.eksperten.dk/artikler/1164?
#5
Java med jar i classpath:
YourInterface o = Class.forName(fullclassname).newInstance();
Java med jar udenfor classpath:
URLClassLoader cl = new URLClassLoader(jarfileurl);
YourInterface o = Class.forName(fullclassname, true, cl).newInstance();
C#:
YourInterface o = Assembly.LoadFile(fullassemblyname).CreateInstance(fullclassname);
Ovenstående eksempler forudsætter at der er en constructor uden argumenter, men det er naturligvis også muligt at instantiere objekter med constructor som kræver argumenter.
Java med jar i classpath:
YourInterface o = Class.forName(fullclassname).newInstance();
Java med jar udenfor classpath:
URLClassLoader cl = new URLClassLoader(jarfileurl);
YourInterface o = Class.forName(fullclassname, true, cl).newInstance();
C#:
YourInterface o = Assembly.LoadFile(fullassemblyname).CreateInstance(fullclassname);
Ovenstående eksempler forudsætter at der er en constructor uden argumenter, men det er naturligvis også muligt at instantiere objekter med constructor som kræver argumenter.
Gå til top
Opret dig som bruger i dag
Det er gratis, og du binder dig ikke til noget.
Når du er oprettet som bruger, får du adgang til en lang række af sidens andre muligheder, såsom at udforme siden efter eget ønske og deltage i diskussionerne.