コマンド/イベント規則を複数回定義できないようです。登録されたすべての規則は、以前のものを上書きします。
これは機能します:
configuration.Conventions()
.DefiningCommandsAs(
type => type.FullName == "MyProject1.CommandA" || type.FullName == "MyProject2.CommandB");
しかし、これはしません:
configuration.Conventions()
.DefiningCommandsAs(
type => type.FullName == "MyProject1.CommandA");
configuration.Conventions()
.DefiningCommandsAs(
type => type.FullName == "MyProject2.CommandB");
なぜこれが必要なのですか:
NSB プロジェクトで一度参照されたパッケージが定期的なアクション (メッセージの送信) を実行するパッケージを開発しています。INeedInitialization
アセンブリのスキャン中に取得される独自のコマンド規則を定義する必要があります。パッケージの規約を登録する必要があることをパッケージのユーザーに知られたくありません。ただし、ホスト プロジェクトは、コマンドの独自の規則を登録する必要があります。したがって、現時点では、Marker インターフェイスに頼る必要があるようです (これはやりたくありません。控えめなモードが導入されたのには十分な理由があります)。 *私も好きではない名前空間。
したがって、問題は、パッケージが独自の規則を控えめかつ透過的にホストに登録する方法です。
編集
これをハッキングするもう 1 つの方法は、共有規約シングルトンを実装し、規約の登録を委任することです。そのシングルトンはすべての規則を記憶し、毎回それらを追加し続けます。美しくはありませんが、他の 2 つのオプションよりも醜くはありません。