No se puede serializar el parámetro de tipo 'System.Linq.Enumerable ...' cuando se usa WCF, LINQ, JSON

Tengo un servicio WCF. Utiliza Linq-to-objects para seleccionar de un Diccionario. El tipo de objeto es simple:

public class User 
{
   public Guid Id;
   public String Name;
}

Hay una colección de almacenados en unDictionary<Guid,User>.

Quiero tener un WCFOperationContract método como este:

public IEnumerable<Guid> GetAllUsers()
{
    var selection = from user in list.Values
        select user.Id;
     return selection;
}

Se compila bien, pero cuando lo ejecuto obtengo:

El servidor encontró un error al procesar la solicitud. El mensaje de excepción es 'No se puede serializar el parámetro de tipo' System.Linq.Enumerable + WhereSelectEnumerableIterator2[Cheeso.Samples.Webservices._2010.Jan.User,System.Guid]' (for operation 'GetAllUsers', contract 'IJsonService') because it is not the exact type 'System.Collections.Generic.IEnumerable1 [System.Guid] 'en la firma del método y no está en la colección de tipos conocidos. Para serializar el parámetro, agregue el tipo a la colección de tipos conocidos para la operación utilizando ServiceKnownTypeAttribute. '. Ver los registros del servidor para más detalles.

¿Cómo puedo obligar a la selección a ser unIEnumerable<Guid> ?

EDITAR
Si modifico el código para hacer esto, funciona bien, buena interoperabilidad.

public List<Guid> GetAllUsers()
{
    var selection = from user in list.Values
        select user.Id;
     return new List<Guid>(selection);
}

¿Hay alguna manera de evitar la creación / creación de instancias de laList<T> ?

Respuestas a la pregunta(3)

Su respuesta a la pregunta