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 件のコメント:

コメントを投稿

ARESのトリニティ(三位一体)

 ARESのトリニティ戦略、どこがトリニティなんでしょう。 まずはデスクトップCADが、WindowsにもMacにもLinux版もあるというトリニティ。 デスクトップCADと、モバイルCAD(ARES Touch)と、ブラウザとサーバーCAD(ARES Kudo)のトリニティ。 ...