我想知道是否有什么语言特性/库/工具/技术可以用来在脚本环境中的管道中调用.NET/C#“函数”?例如,我有
public interface IFoo
{
...
}
public interface IBar
{
IFoo Load(string fileName);
IFoo Replace(string oldValue, string newValue);
void Save(string fileName);
}然后使用适当的Main()将它们包装在util.exe中。现在,我想像使用管道DOS命令一样使用它们:
util.exe -load in.txt | util.exe -replace x y | util.exe -save output.txt有可能吗?是否对IFoo有任何限制,因为它可以是复杂的数据结构,不能很容易地序列化为ASCII字符串。去那里的方法是什么?
发布于 2012-08-30 09:08:18
PowerShell是一个非常好的选择。
首先,您可以直接调用任何已编译的代码,因此,如果您不想在C#中创建实际的cmdlet,您可以用PowerShell编写调用代码,并使用它的所有管道管道在步骤之间传递数据。
即调用Ping.Send:
$ping = New-Object System.Net.NetworkInformation.Ping
$ping.send("localhost")您还可以为更好的PowerShell代码和更好的控制实现CmdLets -示例http://www.codeproject.com/Articles/32999/How-to-Write-a-Custom-PowerShell-Cmdlet-Part-I
发布于 2012-08-30 07:49:03
一个不错的选择是C#脚本
这允许您从脚本环境中调用任何.NET程序集,其中脚本环境的语言是C#。
ECMA Script是一个基于公共语言运行库的脚本系统,它使用符合
标准的C#作为编程语言。CS-Script目前面向微软的CLR2.0/3.0/3.5/4.0实现,完全支持.NET。
发布于 2021-05-08 03:37:35
您也可以使用F#来实现这一点。您可以使用pipes and function composition进行顺序数据处理,并且它是一种.NET语言,因此您可以直接引用C#和VB对象。它既可以在scripts中使用,也可以在REPL提示符中使用,默认情况下,解释器包含在.NET SDK中。
https://stackoverflow.com/questions/12188021
复制相似问题