FaultException e exceção personalizada WCF

Tenho uma pergunta sobre como enviar uma exceção personalizada como FaultException. Funciona quando uso uma exceção do sistema como ArgumentException, mas se eu a alterar para minha exceção personalizada "TestException", ela falhará. Não consigo obter a configuração da referência de serviço quando tento adicioná-la.

Trabalho

[OperationContract]
[FaultContract(typeof(ArgumentException))]
[TransportChannel TestMethod ();


public Void TestMethod()
{
            throw new FaultException<ArgumentException>(new ArgumentException("test"), new FaultReason("test"));
}

Não funciona:

[OperationContract]
[FaultContract(typeof(TestException))]
[TransportChannel TestMethod ();


public Void TestMethod()
{
            throw new FaultException<TestException>(new TestException("test"), new FaultReason("test"));
}

Meu "TestException" é assim:

[Serializable()]
public class TestException: Exception
{
    public TestException () : base() { }
    public TestException (string message) : base(message) { }
    public TestException (string message, Exception innerException) : base(message, innerException) { }
    public TestException (System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) : base(info, context) { }
}

Acho que preciso adicionar um DataContract ao objeto personalizado, mas não entendo por que ele não funcionará, pois o ArgumentException funciona. Alguém pode me esclarecer?

Obrigado pela ajuda

questionAnswers(2)

yourAnswerToTheQuestion