我只是尝试一下Clojure CLR,我被如何使看起来好像它应该是一个非常简单的调用工作难住了。
版本为Clojure 1.10.0-master-SNAPSHOT
在REPL中我这样做:
(import 'System.IO.FileSystem)
(FileSystem/Directory/GetCurrentDirectory)
我得到以下响应:
Syntax error (InvalidOperationException) compiling at (REPL:1:2).
Unable to find static field: GetCurrentDirectory in
所有我能找到的"无法找到静态字段:"似乎表明我把程序集名称搞错了,但似乎不是这样。
我也试过这个:
(. FileSystem/Directory GetCurrentDirectory)
得到
Syntax error (InvalidOperationException) compiling at (REPL:1:2).
Unable to find static field: Directory in System.IO.FileSystem
也试过这个:
(FileSystem/Directory/GetCurrentDirectory [])
我得到这个错误:
Syntax error (InvalidOperationException) compiling at (REPL:1:2).
Unable to find static field: GetCurrentDirectory in
谁能告诉我,我在这里错了什么?在Core 3.1和Net 5.0下,System.IO.FileSystem
不包含GetCurrenDirectory
或Directory
。(您可以通过评估((map #(.Name %) (concat (.GetMethods System.IO.FileSystem) (.GetProperties System.IO.FileSystem))
来快速检查这一点,以查看可用的内容。)
有一个System.IO.Directory
类和一个GetCurrentDirectory
方法。试着
(System.IO.Directory/GetCurrentDirectory)
或者如果你想导入类
(import 'System.IO.Directory)
(Directory/GetCurrentDirectory)