Moin,
ich habe eine Klasse mit etwa 1900 Delegaten , diese werden Dynamisch zur Laufzeit an Systempointer gebunden. Nun möchte ich in einer anderen (statischen) Klasse die Methoden auf meine Delegaten binden. Meine Frage , kann ich das , dass ich dann zur Laufzeit die Methoden einfach aufrufen kann und der delegate wird ausgeführt?
Falls nein: welche anderen möglichkeiten habe ich , ausser für alle 1900 delegaten eine Methode zu definieren?
Hallo Pria,
meinst du so was wie die CreateDelegate-Methode? Du könntest dann noch eine Liste von Delegates verwenden, die du dann zur Laufzeit zusammensetzt. Das könnte man dann via Reflection machen.
zero_x
zero_x | <span style="font-size: 10;">my</span><span style="font-size: 10;">CSharp</span><span style="font-size: 10;">.de</span> - gemeinsam mehr erreichen
Für längere Zeit inaktiv.
ich habe eine Klasse mit etwa 1900 Delegaten , diese werden Dynamisch zur Laufzeit an Systempointer gebunden. Nun möchte ich in einer anderen (statischen) Klasse die Methoden auf meine Delegaten binden. Meine Frage , kann ich das , dass ich dann zur Laufzeit die Methoden einfach aufrufen kann und der delegate wird ausgeführt?
Also irgendwie riecht das tierisch. Magst du vl weiter drauf eingehen, was du überhaupt vorhast?
ist im grunde ganz einfach , ich lade alle verfügbaren extensions von meinem OpenGL-Treiber auf die entsprechenden Delegate-Abbildungen über das Handle mit glGetProcAddress und Marshal.GetDelegateForFunctionPointer
Ich will die delegaten aber nicht verwenden müssen , sondern die methoden , die ich bereits in der statischen Kernklasse definiert habe.
Hi,
schreib dir doch ein Programm, was eine C#-Datei aus der open-GL-Library generiert, die intern eben zahllose PInvoke's per DllImport hat.
Kannst ja auch in visual studio als T4-Template ablegen, dann bleibst du "on-the-fly" aktuell.
beste Grüße
zommi
Salute Pria
Wenn ich das richtig verstehe, schaut die Antwort von zommi am brauchbarsten für dich aus.
Gruss Peter
--
Microsoft MVP - Visual Developer ASP / ASP.NET, Switzerland 2007 - 2011