[英]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.