2017-01-18 20 views
0

Я испытываю эту ошибку во время выполнения при попытке придать свойство с помощью инъекции Unity зависимости: System.InvalidOperationException: Свойство HasNext по типу Batch имеет типа Func'2, и не может вводится значение типа Func`2.Вводят Func <объект, BOOL> с помощью 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>>()) 
     ); 

Как получить это право?

ответ

0

В конце концов я получил эту работу, исправляя тип:

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

 Смежные вопросы

  • Нет связанных вопросов^_^