对象得到了铸造

时间:2015-05-20 09:40:39

标签: c# web-services

对于我工作的公司,我需要通过网络服务获取并保存一些数据。

我开发了一个api,我可以:

  • 通过名为QueryService
  • 的网络服务获取数据
  • 通过名为ObjectService
  • 的网络服务保存数据

两个对象都有一个名为Attribute的类,如下所示:

public partial class Attribute {

    private string nameField;

    private object valueField;

    /// <remarks/>
    public string Name {
        get {
            return this.nameField;
        }
        set {
            this.nameField = value;
        }
    }

    /// <remarks/>
    public object Value {
        get {
            return this.valueField;
        }
        set {
            this.valueField = value;
        }
    }
}

导致某些问题的这种情况的代码如下:

List<myApp.ObjectService.Attribute> properties = new List<myApp.ObjectService.Attribute>();

properties.Add(
    new myApp.ObjectService.Attribute() {
        Name = "object_name",
        Value = g.Name
    }
);
properties.Add(
    new myApp.ObjectService.Attribute() {
        Name = "title",
        Value = g.Name
    }
);
properties.Add(
    new myApp.ObjectService.Attribute() {
        Name = "m_video_st",
        Value = g.Videos.Select(c => c.Id).ToArray()
    }
);
properties.Add(
    new myApp.ObjectService.Attribute() {
        Name = "keywords",
        Value = g.Keywords.ToArray()
    }
);
myApp.ObjectService.Attribute[] arr = properties.ToArray();
os.Save(g.Id, arr);

os正在该类的contstructor中创建:

this.os = new myApp.ObjectService.Objectservice();

在本地测试时(该服务在本地计算机和部署机器上引用相同的服务器)它运行良好,当我使用Fiddler查看从api发送到serveice的请求时,它看起来像这样: enter image description here

但是当我部署请求时看起来像这样: enter image description here

注意关键字属性从xsi:type=ArrayOfString更改为xmlns:q2=http://xxxxxx.com/xxxxxx/queryservices xsi:type=q2:ArrayOfString ]

的位置

因此,出于某种原因,它会从列表类型进行更改。

我们认为它来自IIS。但我们不知道为什么。

0 个答案:

没有答案