Pergunta

Eu estou tentando usar Reactive Extensions de Boo e estou correndo em problemas do tipo. Aqui está o exemplo básico:

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)

O Inscreva-se aqui dá uma System.InvalidCastException: Não é possível converter de tipo de fonte para o tipo de destino. A questão parece ser com a forma como eu estou criando o observável, mas eu tenho lutado para ver onde está o problema tipo surge.

Idéias?

Foi útil?

Solução

Observable.Create leva Func<IObserver,Action>, mas o seu OnSubscribe aceita um IObservable.

Tente isto:

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)
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top