Les paramètres les valeurs d'une variable dans une Moq Callback() appel

Je pense que j'ai peut-être un peu confus sur la syntaxe de l'Moq méthodes de Rappel. Quand j'ai essayer de faire quelque chose comme ceci:

IFilter filter = new Filter();
List<IFoo> objects = new List<IFoo> { new Foo(), new Foo() };  

IQueryable myFilteredFoos = null;
mockObject.Setup(m => m.GetByFilter(It.IsAny<IFilter>()))
   .Callback( (IFilter filter) => myFilteredFoos = filter.FilterCollection(objects))
   .Returns(myFilteredFoos.Cast<IFooBar>());

Cela lève une exception parce que myFilteredFoos est nulle au cours de la Cast<IFooBar>() appel. Ce n'est pas du travail que j'attends? Je pense que FilterCollection seraient appelés et puis myFilteredFoos serait non nulle, et de permettre la fonte.

FilterCollection n'est pas capable de retourner une valeur null qui m'attire à la conclusion qu'il n'est pas appelée. Aussi, lorsque je déclare myFilteredFoos comme ceci:

Queryable myFilteredFoos;

L'appel de Retour se plaint que myFilteredFoos peut être utilisé avant qu'il est initialisé.