Using ClojureCLR in a C# project
Clone this wiki locally
To use ClojureCLR in a C# project, include the ClojureCLR runtime via NuGet. The repo is at http://www.nuget.org/packages/Clojure/. From the NuGet console:
The package includes runtimes for .Net 3.5 and 4.0. ClojureCLR is packaged in the single file
Clojure.dll that contains the runtime. (The many DLLs required have been ILMerge'd.) Also, the DLLs are signed so that they can be included in signed projects.
Also included in the package are Clojure.Main.exe and Clojure.Compile.exe. They are in the tools\ subdirectory.
In general, one should not call any methods from the clojure.lang.X classes directly, even those in clojure.lang.RT, which provides runtime support for the Clojure core functions. For example, RT.load supports clojure-core/load, but the Clojure load function does input massaging and other work around the call to RT.load.
Instead, use the methods in the clojure.clr.api.Clojure class. This class parallels the clojure.java.api.Clojure class in ClojureJVM. More information is to be found at http://clojure.org/java_interop#Java Interop-Calling Clojure From Java .
IFn load= clojure.clr.api.Clojure.var("clojure.core", "load"); load.invoke("some.thing");