1

静的参照やその他の 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 言語で作成されたモジュールをサポートしていますか?

前もって感謝します :)

4

0 に答える 0