0

スクリプト環境のパイプラインで.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

出来ますか?IFooASCII 文字列に簡単にシリアル化できない複雑なデータ構造になる可能性があるため、制約はありますか。行き方は?

4

3 に答える 3

2

PowerShell は非常に優れたオプションです。

まず第一に、コンパイルされたコードを直接呼び出すことができるため、C# で実際のコマンドレットを作成したくない場合は、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-30T01:08:18.147 に答える
1

1つの良いオプションはC#スクリプトです

http://www.csscript.net/

これにより、スクリプト環境の言語がC#であるスクリプト環境から任意の.NETアセンブリを呼び出すことができます。

CS-Scriptは、プログラミング言語としてECMA準拠のC#を使用するCLR(共通言語ランタイム)ベースのスクリプトシステムです。CS-Scriptは現在、Monoを完全にサポートするCLR(.NET 2.0 / 3.0 / 3.5 / 4.0)のMicrosoft実装を対象としています。

于 2012-08-29T23:49:03.300 に答える