1

カスタム シミュレーター ルールの DLL、バージョン、および名前空間は、.ptd 内の開発ステートジーにエンコードされているようです。

カスタム ルールのコードなどを新しい名前空間/DLL に移動したいと考えています。

シリアライゼーション バインディング コードを使用して、カスタム ドメイン オブジェクト スタイルでこれを処理します。カスタム シミュレータ ルールに対して同じことを行うことは可能ですか?

乾杯、

ニール

4

1 に答える 1

1

ロバートへの回答:

Petrel 2012 には、ワークステップとプロセス用の新しい属性があります。UniqueIdCore メソッドを実装して、Guid の形式で固定され安定したグローバル (すべてのプロジェクトにわたって) 一意の ID を提供する必要があります。この UniqueId は、Petrel プロジェクトにシリアル化されます。シリアル化されたワークフローで使用されます。2012 リリースより前では、ワークステップのアセンブリまたは名前空間を変更すると、シリアル化されたワークフローが壊れていました。後でワークステップ タイプを変更する場合は、同じ一意の識別子を指定する限り、シリアル化されたワークフローを中断することなく変更できます。

ニールへの答え:

同僚との会話に関しては、これは arg pack のソフト化された ID 文字列の問題であるため、残念ながら別のアセンブリに移動したり、クラス名を変更したりすることはできません。現在可能な半回避策は 1 つだけです (チェックしませんでした): 引数パックを古いアセンブリ/クラス名に残して、他のすべてを移動しますが、もちろんこれは良い解決策ではありません。

于 2012-10-12T19:28:29.880 に答える