簡體   English   中英

注入功能 <object, bool> 使用Unity

[英]Inject Func<object, bool> using Unity

嘗試使用Unity依賴項注入來注入屬性時,我遇到此運行時錯誤:

在Batch類中,有一個屬性定義為:

    public Func<object, bool> HasNext { get; set; }

我嘗試使用以下代碼設置此屬性:

        _container.RegisterType<Func<ConcurrentQueue<QueryDeal>, bool>>
        (
            new InjectionFactory(c => new Func<ConcurrentQueue<QueryDeal>, bool>(name => !c.Resolve<ConcurrentQueue<QueryDeal>>().IsEmpty))
        );

        _container.RegisterType<IContainer, Batch>(Constants.FeedBatch,
            new InjectionConstructor(
                ...
            ),             
            new InjectionProperty("HasNext", _container.Resolve<Func<ConcurrentQueue<QueryDeal>, bool>>())
        );

我該如何正確處理?

我最終通過更正類型來使其工作:

            new InjectionProperty("HasNext", new Func<object, bool>(_ =>!_container.Resolve<ConcurrentQueue<QueryDeal>>().IsEmpty))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM