WCF - конвертировать пустой элемент в нуль-нативный тип

Оставление пустым элемента поля SOAP приводит к ошибке приведения для собственных типов. (к сожалению, не могу использовать xsi: nil = "правда" из-за ограничений клиента)

Пометка собственного типа контракта WCF как обнуляемого <> кажется недостаточно, чтобы остановить следующую ошибку, возвращаемую клиенту.

Строка '' не является допустимым логическим значением. в System.Xml.XmlConvert.ToBoolean (String s) в System.Xml.XmlConverter.ToBoolean (String value) System.FormatException

Кто-нибудь знает лучший метод инструктирования DataContractSerializer для преобразования пустых элементов для десериализации в нуль?

Мой пример контракта на обслуживание WCF;

[ServiceContract()]
public interface IMyTest
{
    [OperationContract]
    string TestOperation(TestRequest request);
}

[ServiceBehavior()]
public class Settings : IMyTest
{
    public string TestOperation(TestRequest request)
    {
        if (request.TestDetail.TestBool.HasValue)
            return "Bool was specified";
        else
            return "Bool was null";
    }

}

[DataContract()]
public class TestRequest
{
    [DataMember(IsRequired = true)]
    public int ID { get; set; }

    [DataMember(IsRequired = true)]
    public TestDetail TestDetail { get; set; }
}

[DataContract()]
public class TestDetail
{
    [DataMember()]
    public bool? TestBool { get; set; }
}

Как мы можем заставить WCF принять следующую заявку;


   
   
      
         
            1
            
               
            
         
      
   

Клиент может только изменить значение, которое он вставляет{here} так что правда ложь или ничего - единственные варианты.

Ответы на вопрос(1)

Ваш ответ на вопрос