2019年7月8日月曜日

C# でコマンドレットを作成する

TeighaShell プログラムには、C#で定義したコマンドレットがいくつかある。DrawingOperation.cs ファイルに定義されている。

多くのコマンドレットはパイプラインで処理を行う。ProcessRecord() メソッドでパイプラインから渡された複数のオブジェクト(データ)を1つずつ処理するコードを書くのが普通だ。
DrawingOperation.cs ファイルに定義したコマンドレットは1個の Database オブジェクトを処理するように設計しているので、EndProcessing() メソッドでパラメータとして受け取ったオブジェクト(データ)を処理するようにしている。
WriteObject()メソッドが重要で、オブジェクト(データ)を次のパイプラインや出力結果に流す働きをしている。

Open-Drawing コマンドレットは、空のデータベースオブジェクトを作成し、ReadDwgFile() メソッドでDWG/DXF/DXBファイルをデータベースに読み込んで、WriteObject() メソッドでデータベースオブジェクトをパイプラインに渡す。

Save-Drawing コマンドレットは、ファイル名、データベース、保存形式、バージョン、DXFファイルの精度をパラメータとして、図面をファイルに保存するためのもの。
上書き保存と、名前を付けて保存で呼び出すメソッドが異なるので、その辺をユーザーに意識させないようにコマンドレットで処理を行うようにした。

参考
Windows PowerShell コマンドレットの記述



0 件のコメント:

コメントを投稿

VSCode で ARES の C# クラスライブラリを作成(1)

はじめにVSCodeにC#開発環境を追加しましょう。 VSCodeを実行し機能拡張から C# Dev Kit をインストールします。 関連する C# や .NET Install Tool もインストールされます。 以下の作業で、空のフォルダを作り、.Net が利用可能かどうかを...