예제 #1
0
        protected override void WriteXml(XmlWriter writer)
        {
            base.WriteXml(writer);
            string codeValue = GetCodeString(FaultCode);

            //fault
            writer.WriteStartElement(SoapConstant.SoapFaultLocalName, EnvelopeNS);
            //code
            writer.WriteStartElement(SoapConstant.SoapCodeLocalName, EnvelopeNS);
            //value
            writer.WriteStartElement(SoapConstant.SoapCodeValueLocalName, EnvelopeNS);
            writer.WriteValue(codeValue);
            //end value
            writer.WriteEndElement();
            //end code
            writer.WriteEndElement();
            //reason
            writer.WriteStartElement(SoapConstant.SoapReasonLocalName, EnvelopeNS);
            writer.WriteStartElement(SoapConstant.SoapReasonTextLocalName, EnvelopeNS);
            writer.WriteAttributeString("xml", "lang", "", "en");
            writer.WriteValue(Reason);
            writer.WriteEndElement();
            //end reason
            writer.WriteEndElement();
            //detail
            if (Detail != null)
            {
                writer.WriteStartElement(SoapConstant.SoapDetailLocalName, EnvelopeNS);
                try
                {
                    //, null,
                    SoapSerializeHelper.WriteDataContract(writer, Detail, "string", "http://schemas.datacontract.org/2004/07/WcfService3");
                }
                catch (Exception ex)
                {
                    Log.Default.LogException(ex);
                }
                writer.WriteEndElement();
            }
            //end fault
            writer.WriteEndElement();
            //end body
            writer.WriteEndElement();
            writer.WriteEndElement();
        }
예제 #2
0
 protected override void WriteXml(XmlWriter writer)
 {
     base.WriteXml(writer);
     //writer Response
     writer.WriteStartElement(m_actionResponseName, m_serviceNS);
     if (m_result != null)
     {
         SoapSerializeHelper.WriteDataContract(writer, m_result, m_operationName + SoapConstant.ActionResponseResultSuffix, this.m_serviceNS);
     }
     if (m_outArgs != null)
     {
         foreach (KeyValuePair <string, object> outArg in m_outArgs)
         {
             SoapSerializeHelper.WriteDataContract(writer, outArg.Value, outArg.Key);
         }
     }
     //write end Response
     writer.WriteEndElement();
     //write end body
     writer.WriteEndElement();
     //write end Envelop
     writer.WriteEndElement();
 }