C# 为什么REST方法返回的元素顺序在Postman和Lambda之间有所不同?

C# 为什么REST方法返回的元素顺序在Postman和Lambda之间有所不同?,c#,json,rest,xml-serialization,postman,C#,Json,Rest,Xml Serialization,Postman,当我从Postman调用REST方法时,返回数据的元素顺序如下: IOW: 但是,当我从客户端应用程序调用REST方法时: private IEnumerable<VendorItem> GetCollectionOfVendorItems() { ArrayList arrList = FetchDataFromServer("http://localhost:21608/api/vendoritem/getall"); String contents = "&

当我从Postman调用REST方法时,返回数据的元素顺序如下:

IOW:

但是,当我从客户端应用程序调用REST方法时:

private IEnumerable<VendorItem> GetCollectionOfVendorItems()
{
    ArrayList arrList = 
FetchDataFromServer("http://localhost:21608/api/vendoritem/getall");
    String contents = "<VendorItems>";
    foreach (String s in arrList)
    {
        contents += s;
    }
    contents += "</VendorItems>";
    String unwantedPreamble = "<ArrayOfVendorItem xmlns:i=\"http://www.w3.org/2001/XMLSchema-
instance\" xmlns=\"http://schemas.datacontract.org/2004/07/CStore.DomainModels.HHS\">";
    contents = contents.Replace(unwantedPreamble, String.Empty);
    contents = contents.Replace("</ArrayOfVendorItem>", String.Empty);
    XDocument xmlDoc = XDocument.Parse(contents);
    IEnumerable<VendorItem> vendorItems = xmlDoc.Descendants("VendorItem").Select(x => 
GetVendorItemForXMLElement(x));
    return vendorItems;
}

private static VendorItem GetVendorItemForXMLElement(XElement vendor)
{
    return new VendorItem
    {
        Id = vendor.Element("Id").Value,
        PackSize = Convert.ToInt32(vendor.Element("PackSize").Value),
        VendorId = vendor.Element("VendorId").Value,
        VendorItemID = vendor.Element("VendorItemID").Value
        //VendorId = vendor.Element("VendorId").Value,
        //VendorItemID = vendor.Element("VendorItemID").Value,
        //Id = vendor.Element("Id").Value,
        //PackSize = Convert.ToInt32(vendor.Element("PackSize").Value)
    };
}

public class VendorItem
{
    public string Id { get; set; }
    public int PackSize { get; set; }
    public string VendorId { get; set; }
    public string VendorItemID { get; set; }
    public String siteNum { get; set; }

    //public string VendorId { get; set; }
    //public string VendorItemID { get; set; }
    //public string Id { get; set; }
    //public int PackSize { get; set; }
    //public String siteNum { get; set; }
}
即使类中成员的顺序与邮递员的报税表匹配,也没有区别;不管怎样,我先拿到身份证,等等

为什么会这样?这似乎不重要,但我错了吗


c#REST postman xml json

不同的代码表现不同。获取数据的两种方法都调用相同的REST方法,它以相同的方式返回相同的数据(无论如何,人们会认为),而不管是谁调用它(它怎么知道)?@B.ClayShannon是的,但一个返回json,另一个返回xml。至少,它们使用的是不同的序列化代码。FWIW,我有ServiceStack代码可以做同样的事情。xml是按字母顺序排列的,但是json是按另一个顺序排列的,可能是反射返回属性的任何顺序。
private IEnumerable<VendorItem> GetCollectionOfVendorItems()
{
    ArrayList arrList = 
FetchDataFromServer("http://localhost:21608/api/vendoritem/getall");
    String contents = "<VendorItems>";
    foreach (String s in arrList)
    {
        contents += s;
    }
    contents += "</VendorItems>";
    String unwantedPreamble = "<ArrayOfVendorItem xmlns:i=\"http://www.w3.org/2001/XMLSchema-
instance\" xmlns=\"http://schemas.datacontract.org/2004/07/CStore.DomainModels.HHS\">";
    contents = contents.Replace(unwantedPreamble, String.Empty);
    contents = contents.Replace("</ArrayOfVendorItem>", String.Empty);
    XDocument xmlDoc = XDocument.Parse(contents);
    IEnumerable<VendorItem> vendorItems = xmlDoc.Descendants("VendorItem").Select(x => 
GetVendorItemForXMLElement(x));
    return vendorItems;
}

private static VendorItem GetVendorItemForXMLElement(XElement vendor)
{
    return new VendorItem
    {
        Id = vendor.Element("Id").Value,
        PackSize = Convert.ToInt32(vendor.Element("PackSize").Value),
        VendorId = vendor.Element("VendorId").Value,
        VendorItemID = vendor.Element("VendorItemID").Value
        //VendorId = vendor.Element("VendorId").Value,
        //VendorItemID = vendor.Element("VendorItemID").Value,
        //Id = vendor.Element("Id").Value,
        //PackSize = Convert.ToInt32(vendor.Element("PackSize").Value)
    };
}

public class VendorItem
{
    public string Id { get; set; }
    public int PackSize { get; set; }
    public string VendorId { get; set; }
    public string VendorItemID { get; set; }
    public String siteNum { get; set; }

    //public string VendorId { get; set; }
    //public string VendorItemID { get; set; }
    //public string Id { get; set; }
    //public int PackSize { get; set; }
    //public String siteNum { get; set; }
}
Id
PackSize
VendorId
VendorItemID