2011-11-10 6 views
0

私はカスタマイズされたDataSourceを実装中です。私は逐次化のメカニズムを変更しているので、プロジェクトを再起動すると、入力データツリー内の多くの古いオブジェクトエントリ(データソースからオブジェクトを読み取ることができませんでした)が発生します。これらのオブジェクトを入力ツリーから削除するには、通常の削除機能はこれらのオブジェクトでは機能しません。古くなったオーシャンオブジェクトを削除するには

+0

オーシャンとは何ですか? – leppie

答えて

1

Oceanは、ソフトウェア製品用のプラグインをビルドするためのSchlumbergerによってプラットフォームが作られています。特に、地質学モデリングプログラムのPetrelです。

入力ツリーからオブジェクトを除去するために、私はコードがかもしれないと思うとおり:

Slb.Ocean.Petrel.PetrelProject.PrimaryProject.Extensions.Remove(objectToRemove);

SLBのトレーニングコースによると、あなたがカスタマイズしたオブジェクトを追加するために、反対(Extensions.Add())を行います木。

+0

私がこれを投稿した後に思い出したことは、あなたのオブジェクトにIDeletableインターフェイスを実装させることによって、オブジェクトを明示的に削除可能にすることができることです。あなたはactaullyインターフェイスメソッドの中で何かを行う必要はありません。あなたがそれらを持っている限り、海洋は実際の削除を処理します。しかし、あなたが返すオブジェクトをインスタンス化する必要があります。ただし、argをtrueに設定してDeletableInfoから返します。 – Aaron

3

また、Petrelユーザーインターフェイスを介して解決策があります。オブジェクトを解決しようとしているコンポーネントが一切ロードされていないことを確認してください(モジュールをロードしないようにPetrelの設定を変更し、プロービング・パスから削除してください)。

これらのオブジェクトが完全に不明で解決できない場合は、マウスの右ボタンで削除オプションが表示されます。削除を実行するとツリーから項目が削除されます。

オブジェクトのシリアル化(およびアップグレード)の一般的な処理については、Ocean.chmヘルプファイルのセクションSlb.Ocean.Petrel.Data名前空間を参照してください。ここでさらにヒントやサービスを見つけることができます。

関連する問題