![]() |
Klasse aus Datei laden
hi,
ich möchte eine kleine flexible Spieleengine schreiben und habe mir dazu überlegt, eine Standardklasse für den Renderer zu erstellen, die die Funktionen und so vorgibt. Diese soll dann von einer anderen Klasse, die in einer anderen Datei liegt und die Funktionen für OpenGL oder DirectX bereitstellt, überladen werden. Wie kann ich das am besten in .NET machen ? mfg, stefan |
Re: Klasse aus Datei laden
Schaue dir mal die Assembly Klasse an.
Vornehmlich die Methoden Load* und Get*Types Hier mal ein kleines Beispiel, es ist nicht Delphi, aber ein Pascal dialekt, der nicht sooo unterschiedlich ist. ;) Das interface steht in der Echse:
Delphi-Quellcode:
Jetzt noch eine ClassLib anlegen(in Delphi->Package) und dort den Typen anlegen:
ISample = public interface
method DoSomething : String; end;
Delphi-Quellcode:
Wenn die Echse eine simple consollen app ist reicht das:
type
Sample = public class(ISample) public method DoSomething : String; end; implementation method Sample.DoSomething : String; begin result := 'Miep'; end;
Delphi-Quellcode:
edit: ups, Dachte war'n D.Net thread... :oop:
begin
var lib := &Assembly.LoadFrom('LoadTypeFromAssembly.Lib.dll'); for loadedType : &Type in lib.GetExportedTypes() do if typeof(ISample).IsAssignableFrom(loadedType) then begin var instance := Activator.CreateInstance(loadedType, []) as ISample; Console.WriteLine(instance.DoSomething()); end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:21 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz