WCF y herencia de interfaz: ¿es esto algo terrible?

Mi aplicación tiene 2 "servicios", digamos que uno es una calculadora básica (entera) y una es una calculadora de coma flotante. Expreso esto como interfaces así:

public interface IBasicCalculator
{
    int Add( int a, int b );
}

public interface IFloatingPointCalculator
{
    double Add( double a, double b );
}

Quiero exponer estos a través de WCF. Desafortunadamente, WCF parece estar muy ligado a la idea de que cada posible operación que desee exponer debe pasar por una única interfaz de servicio: no puede compartir sesiones entre servicios, es engorroso desde el lado del cliente, ya que necesita crear un proxy separado para cada uno, no parece haber ningún "sub-servicio", etc.

Entonces, he deducido que necesito presentar una interfaz "combinada" (también podría llamarse fachada), así:

[ServiceContract]
public interface ICalculatorService : IBasicCalculator, IFloatingPointCalculator
{
    [OperationContract(Name = "AddInt")]
    new int Add( int a, int b );

    [OperationContract(Name = "AddDouble")]
    new double Add( double a, double b );
}

Si hago esto, WCF expone ambos métodos al cliente, que puede llamarlos, y todo funciona.

Sin embargo, "heredar las interfaces" de esa manera parece ser desgarbado.Particularmente elnew int Add ynew double Add. Estrictamente hablandonew en un método indica ocultar un método subyacente, que en realidad no estoy haciendo en absoluto. Puedo omitir elnew, pero luego recibo advertencias del compilador que equivalen a "Creo que estoy ocultando este método, debes cambiarle el nombre o poner 'nuevo' en él".

Entonces, esta es una pregunta de 2 partes:

¿Estoy encaminado con mi lógica de 'combinar todo en una interfaz', o hay realmente una manera de exponer "sub-servicios" o "servicios vinculados múltiples" usando WCF?

Si esto es lo que hay que hacer, ¿hay una mejor manera?

¡Gracias!

Respuestas a la pregunta(3)

Su respuesta a la pregunta