0

My code like this on WCF :

public class Service1 : IService1
    {

        public REsponse getBarStores()
        {
            REsponse respons = new REsponse();
            respons.StokBarcode = new StoreCount();
            respons.StokBarcode.count = "123";
            respons.StokBarcode.stCode = new StoreCode();
            respons.StokBarcode.stCode.Add("asdasd");
            respons.StokBarcode.stCode.Add("qweqweqwe");

            return respons;

        }


}

   [MessageContract(IsWrapped = false, WrapperNamespace = "")]
    public class REsponse
    {
        [MessageBodyMember(Name = "getOrderResponse", Namespace = "")]
        public StoreCount StokBarcode { get; set; }
    }


    [DataContract(Namespace="")]
    public class StoreCount
    {
        [DataMember(Name="StoreCount")]
        public string count { get; set; }
        [DataMember(Name="StoreCode")]
        public StoreCode stCode { get; set; }
    }

    [CollectionDataContract(ItemName = "StoreCode", Namespace = "")]
    public class StoreCode : Collection<string>
    {


    }

My output xml like this.it is coming with collection name but I dont want like this :

< getBarStoresResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance">

      <StoreCount>76</StoreCount>

      <StoreCode>
         <StoreCode>517</StoreCode>
         <StoreCode>531</StoreCode>
         <StoreCode>541</StoreCode>
         <StoreCode>558</StoreCode>
         <StoreCode>562</StoreCode>
         <StoreCode>568</StoreCode>
      </StoreCode>

    </ getBarStoresResponse >

My issue xml output like this How can I do this xml response on WCF? I dont want to see collection name on xml response on WCF.How can I do this structure xml :

<getBarStoresResponse>
<StoreCount>76</StoreCount>
         <StoreCode>517</StoreCode>
         <StoreCode>531</StoreCode>
         <StoreCode>541</StoreCode>
         <StoreCode>558</StoreCode>
         <StoreCode>562</StoreCode>
         <StoreCode>568</StoreCode>
</getBarStoresResponse>
Sezer Erdogan
  • 167
  • 1
  • 9
  • 34
  • Looks like a duplicate of [Data Contract Serializer - How to omit the outer element of a collection](https://stackoverflow.com/q/8591045) and [WCF DataMember List<> without enclosing element](https://stackoverflow.com/q/8591045). In both cases the answer is, *you must switch to `XmlSerializer`* (Or hypothetically you could implement `IXmlSerializabe` or `ISerializable` I suppose...) – dbc Feb 19 '18 at 08:46
  • Though a custom message contract using `MessageHeaderArrayAttribute` might work. See [How to remove root element of list when serializing with DataContracts](https://stackoverflow.com/q/17681057) and [Using Arrays Inside Message Contracts](https://learn.microsoft.com/en-us/dotnet/framework/wcf/feature-details/using-message-contracts#using-arrays-inside-message-contracts). Never tried it though. – dbc Feb 19 '18 at 08:57

0 Answers0