Tipo conhecido do WCF do System.Object na configuração

Estou tentando especificar um tipo conhecido na minha configuração, mas estou tendo problemas com o fato de que deriva de Object. Eu posso fazê-lo funcionar especificando o tipo conhecido via atributo. Mas neste caso eu preciso fazê-lo funcionar a partir da configuração.

Aqui está um exemplo. O seguinte funciona bem:

[ServiceContract]
[ServiceKnownType(typeof(MyData))]
public interface IContract
{
    [OperationContract]
    void Send(object data);
}

[DataContract]
public class MyData
{
    [DataMember]
    public string Message { get; set; }
}

Mas se eu remover o atributo ServiceKnownType e colocar o seguinte na configuração:

<system.runtime.serialization>
  <dataContractSerializer>
    <declaredTypes>
      <add type="System.Object, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
        <knownType type="WpfApplication1.MyData, WpfApplication1, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"/>
      </add>
    </declaredTypes>
  </dataContractSerializer>
</system.runtime.serialization>

Recebo uma ConfigurationErrorsException com a mensagem "O valor da propriedade 'type' não é válido. O erro é: O tipo System.Object não pode ser usado como um tipo declarado na configuração."

Existe alguma maneira de fazer isso funcionar via config?

questionAnswers(2)

yourAnswerToTheQuestion