SOAP XMl Сериализация для свойства c # - PullRequest
0 голосов
/ 03 апреля 2019

В настоящее время моё мыло генерируется так

 <HdrFault>
     <Fault>   
        <ConsumerProd>
           <Value>soa test</Value>
        </ConsumerProd>
     <Fault>
 </HrdFault>

Я хочу, чтобы он генерировался так

<HdrFault>
   <Fault>   
      <ConsumerProd>soa test</ConsumerProd>
   <Fault>
</HrdFault>

Это бизнес-объект. Я понимаю, почему там есть поле «Значение». Как мне сериализовать это, чтобы иметь вышеупомянутый Soap XML?

[MessageContract]
public partial class HdrFault
{

    private FaultHdr_CType faultHdrField;

    [MessageBodyMember]
    public FaultHdr_CType FaultHdr
    {
        get
        {
            return this.faultHdrField;
        }
        set
        {
            this.faultHdrField = value;
        }
    }
}

[MessageContract]
public class FaultHdr_CType
{
    #region ConsumerProd

    [MessageBodyMember]
    public FaultConsumerProd_Type ConsumerProd { get; set; }

    #endregion
}

[MessageContract]
public class FaultConsumerProd_Type
{
    #region Value

    [MessageBodyMember]
    public string Value { get; set; }

    #endregion
}

1 Ответ

0 голосов
/ 05 апреля 2019

Я сделал две вещи, чтобы решить проблему.Добавление [XmlText]

  [MessageContract]
    public class ValidConsmName_Type
    {

        #region Value

         [XmlText]
        [MessageBodyMember]
        public string Value { get; set; }

        #endregion
    }

Во-вторых, я добавил следующее в контракт

[XmlSerializerFormat(SupportFaults = true)]  
    [ServiceContract(Namespace = "http://jackhenry.com/jxchange/TPG/2008")]
    public interface IInt
{
..}
...