是否有用于运行.net代码的命令行界面或解释器?

时间:2009-04-26 07:45:04

标签: .net read-eval-print-loop

我需要它,但不想重新发明热水。

通过示例提问,语法尽可能的例子:

.net> load myLibrary.dll
myLibrary.dll loaded

.net> Person p "John" "Doo" 32
Instance of myLibrary.Person created (p)

.net> print p.Age
32

所以我正在寻找一个命令行界面来访问程序集的公共方法和属性。 (在此示例中,调用了人员的Ctor(字符串,字符串,整数),之后将属性Age打印到控制台。)

虽然我对任何解决方案都很满意,但

  • 我需要源文件,所以我可以适应它们...(我非常喜欢c#)
  • 我需要它是免费且可再发行的

有什么想法吗?

更新:如果我找不到一个好的解决方案,我会亲自编程,任何有兴趣的人都可以通过gmail与我联系,即phelsen at。

5 个答案:

答案 0 :(得分:7)

对于C#(原始标签),这是“编译器即服务”在未来某个版本中将启用的类型。但是,您可以使用单声道(可使用源代码) - CsharpRepl执行其中一些操作。它应该打印最后一个命令的值 - 而不是完全与您想要的Person描述相同(我希望它将使用ToString())。

CsharpRepl
(来源:mono-project.com

答案 1 :(得分:6)

您可能希望查看Powershell,但据我所知,没有可用的来源。语法不完全是C#,但它很容易上手。

答案 2 :(得分:4)

F#有一个命令行REPL(fsi.exe)。并且F#的代码可用。

(有关旧屏幕截图,请参阅http://strangelights.com/fsharp/wiki/default.aspx/FSharpWiki/FSI.html以获取相关信息。)

答案 3 :(得分:3)

IronPython也有一个REPL。

答案 4 :(得分:2)

您是否尝试过PowerShell(以前代号为Monad)?它是一个基于.NET的CLI,可以完全访问程序集,虽然模型与您指定的“加载程序集”过程不同。