Как вызвать статический метод из библиотеки DLL .NET из Delphi с помощью jedi/jcl

#c# #delphi #dll #runtime #jedi

Вопрос:

я не хочу создавать tlb, обновлять ссылки и т. Д., Поэтому я загружаю .net dll во время выполнения, я могу вызывать и использовать нестатические классы и методы, подобные этому:

 procedure TForm1.Button1Click(Sender: TObject);  var  Host: TJclClrHost;  Obj: OleVariant;  result: string  begin  Host := TJclClrHost.Create('v4.0.30319');  Host.Start();  Obj := Host.DefaultAppDomain  .CreateInstance('DLLNAME',  'NAMESPACE.INSIDE.CLASS.THAT.I.WANT')  .UnWrap();    result:= Obj4.lt;MethodNamegt;(Parameters...);  ....  end;  

и это творит чудеса для нестатических методов….статические методы я не могу понять, как это сделать с помощью JEDI/jcl

как я вызываю статический класс/метод из delphi, используя jed/jcl, или если есть другой способ сделать это во время выполнения, не стесняйтесь, скажите мне, я просто не хочу делать ссылки, генерировать tlbs и т. Д., Просто поместите dll в папку и используйте.

пример статического класса в dll .net:

 using System; using System.Text; using System.Security.Cryptography; using System.IO; using System.Linq; using System.Runtime.InteropServices;  namespace DLLSTATIC.SOMESUBNAME {  [ComVisible(true)]  [ClassInterface(ClassInterfaceType.AutoDual)]  [ProgId("DLLSTATIC.SOMESUBNAME.staticclass")]  public static class staticclass  {  [ComVisible(true)]  public static string test123(string param)  {  return "test1234";  }  } }  

ps. я объявляю com видимым, но я не буду использовать эту библиотеку dll в качестве COM