静的参照やその他の DI/IoC ソリューションdynamic
を使用せずに、モジュールの型オブジェクトを他のモジュール間で共有することは可能ですか?interface
Core.dll
アセンブリに次のような GlobalEvent があるとします。
public class GlobalEvent : CompositePresentationEvent<dynamic>
{
public GlobalEvent()
{
}
// public void Publish(dynamic payload) exist in base class
}
そしてModuleA.dll
(への静的参照を持っていますCore.dll
)で、次のように公開します:
public void RaiseVoucherAdded(Models.Voucher voucher)
{
_eventAggregator.GetEvent<GlobalEvent>().Publish(voucher);
}
// also Voucher class is in ModuleA.dll in Models namespace
public class Voucher
{
// members...
}
およびModuleB.dll
( への静的参照がCore.dll
ある) で、次のように購読します。
this._eventAggregator.GetEvent<GlobalEvent>().Subscribe(EventOccured);
...
private void EventOccured(dynamic data)
{
if (data.GetType().Name == "ModuleA.Models.Voucher")
{
DoSomethingByVoucher(data);
}
}
良い、
このソリューションの欠点は何ですか? それは可能ですか?サポートされている場合、.NET の他の CLR 言語で作成されたモジュールをサポートしていますか?
前もって感謝します :)