我的问题
有没有简单地从C#代码调用clojure函数的例子,就像上面的那样?
有没有关于如何考虑命名空间和文件结构的一般文档,当尝试从C#互操作clojure时?
我现在的主要目标是让自己开心,并最终用nREPL + CIDER运行一些东西。
我尝试使用 load.invoke 来加载 (clojure.tools.nrepl),但是对在哪里放置dll以及如何重命名它感到困惑!
// 以下代码
IFn load = clojure.clr.api.Clojure.var("clojure.core", "load");
var r = load.invoke("tools.nrepl");
输出 RT.cs 静态 FileInfo FindFile(string path, string filename)
probePath 属性,并发现它是
... 我的框架文件夹(net7.0)的绝对路径
...\net7.0\clojure\tools.nrepl.cljr
...\net7.0\bin\clojure\tools.nrepl.cljr
...\net7.0\clojure\tools.nrepl.cljr
...\net7.0\clojure\tools.nrepl.cljc
...\net7.0\bin\clojure\tools.nrepl.cljc
...\net7.0\clojure\tools.nrepl.cljc
...\net7.0\clojure\tools.nrepl.clj
...\net7.0\bin\clojure\tools.nrepl.clj
...\net7.0\clojure\tools.nrepl.clj
...\net7.0\clojure.tools.nrepl.cljr.dll
...\net7.0\bin\clojure.tools.nrepl.cljr.dll
...\net7.0\clojure.tools.nrepl.cljr.dll
...\net7.0\clojure.tools.nrepl.cljc.dll
...\net7.0\bin\clojure.tools.nrepl.cljc.dll
...\net7.0\clojure.tools.nrepl.cljc.dll
...\net7.0\clojure.tools.nrepl.clj.dll
...\net7.0\bin\clojure.tools.nrepl.clj.dll
...\net7.0\clojure.tools.nrepl.clj.dll
错误:在加载路径上找不到 clojure/tools.nrepl 的扩展名为 .cljr, .cljc, .clj, .cljr.dll, .cljc.dll, 或 .clj.dll。
这些都不与NUGET提供的 clojure.tools.nrepl.dll 匹配
操作:重命名
clojure.tools.nrepl.dll -> clojure.tools.nrepl.clj.dll
然后dll被选中,但加载失败
clojure.lang.Compiler.AssemblyInitializationException: '找不到初始化器
对于clojure.tools.nrepl, 版本=0.1.0.0, Culture=neutral,
PublicKeyToken=null.clojure/tools/nrepl'