Тип проблемы с Observable.Create от Boo
Я пытаюсь использовать Reactive Extensions от Boo и сталкиваюсь с проблемами типа. Вот основной пример:
def OnSubscribe(observer as IObservable[of string]) as callable:
print "subscribing"
def Dispose():
print "disposing"
return Dispose
observable = System.Linq.Observable.Create[of string](OnSubscribe)
observer = System.Linq.Observer.Create[of string]({x as string | print x})
observable.Subscribe(observer)
Subscribe здесь дает System.InvalidCastException: Невозможно привести от исходного типа к целевому типу. Похоже, проблема заключается в том, как я создаю наблюдаемое, но я изо всех сил пытался понять, откуда возникает проблема типа.
Идеи?
1 ответ
Решение
Observable.Create
принимает Func<IObserver,Action>
, но твой OnSubscribe
принимает IObservable
,
Попробуй это:
def OnSubscribe(observer as IObserver[of string]) as callable():
print "subscribing"
observer.OnNext("first and only value")
observer.OnCompleted()
def Dispose():
print "disposing"
return Dispose
observable = System.Linq.Observable.Create[of string](OnSubscribe)
observer = System.Linq.Observer.Create[of string]({x as string | print x})
observable.Subscribe(observer)