Den Weg kann man gehen, aber viel einfacher ist, wenn du eine einfache native
DLL daraus machst. Ich habe dafür dieses Open Source Projekt gestartet:
https://github.com/jaenicke/appcentral
Damit kannst du einfach die C#-
DLL ablegen, mit TAppCentral.LoadPlugin in Delphi laden und dann Interfaces beidseitig registrieren und abrufen. Alles, was in ein
Com-Interface passt, sollte damit auch möglich sein.
Das HowTo ist kurz, muss dafür aber genau beachtet werden. Dann sollte es in wenigen Minuten funktionieren.
Generische Listen funktionieren eingeschränkt, in dem Sinn, dass man den Listencode nicht mehrfach schreiben muss. Das habe ich noch nicht veröffentlicht. Ganz ohne Tricks geht es aber nicht. Wenn hier Interesse besteht, kann ich kurzfristig entsprechenden Code ergänzen.
Wie sieht es mit Lambda-Asdrücken oder public List<T> { get; } = new List<T>();?
Bei Lambda-Ausdrücken bin ich mir nicht sicher, wie du die nach außen geben möchtest, aber die Antwort dürfte nein sein. Generics gehen über
COM und TLB nicht.