私が必要としているのは、各 dll に特定のイベント タイプの具象クラスを登録することです。
public interface IDomainEventHandler<T> where T : IDomainEvent
{
void Handle(T domainEvent);
}
同じハンドラーが継承されたクラスで何度も登録および実行されるため、EventHandlers をスキャンしたくありませんが、各 dll の初期化メソッドを構造マップ ブートラッパーで呼び出す必要があります。
したがって、各dll(モジュール)に次のようなものを含めます
public void SetEntityEventHandlers()
{
ObjectFactory.Initialize(x =>
{
x.For<IEntityBeforeUpdateEvent<Person>>()
.Add<PersonBizObj>();
x.For<IEntityBeforeUpdateEvent<Person>>()
.Add<EmployeeBizObj>();
//lets say I have a ManagerBizObj which inherits from EmployeeBizObj and I do not want it in the //event handler loop
}
}
StructureMapには、アセンブリ(dll)の初期化関数を追加するという便利な方法がありますか?