【发布时间】:2014-12-29 02:13:40
【问题描述】:
我在序列化方面遇到了困难。我有一个使用 ajax 调用从服务器端返回对象的 aspx 页面。
期望的输出
ModelPoints=[[1,2,3],[1,2,3],[1,2,3],[1,2,3],[1,2,3]](用于 WebGL)
实际输出 模型点={{点=[1,2,3]},{点=[1,2,3]},{点=[1,2,3]},{点=[1,2,3]} }
申请流程是
Ajax -> Aspx -> WCF -> Aspx -> Ajax
以下是被错误序列化的类。我如何重组它以使其工作?我不想多次解析 18000+ pts,所以服务器的输出应该是正确的格式。即我无法在客户端解析它。
对象名称Points来自参数名称,如何为二维浮点数组做到这一点。
下面的类
[Serializable()]
public class ModelPoint
{
public ModelPoint()
{
}
public ModelPoint(float x, float y, float z)
{
_points = new List<Nullable<float>>();
_points.Add(x);
_points.Add(y);
_points.Add(z);
}
private List<Nullable<float>> _points;
public List<Nullable<float>> Points
{
get {return _points;}
set { _points = value; }
}
}
[Serializable()]
public class Model
{
private List<ModelPoint> _modelPoints;
[System.Xml.Serialization.XmlArray("ModelPoints", IsNullable = true)]
[System.Xml.Serialization.XmlArrayItem()]
public List<ModelPoint> ModelPoints
{
get {return _modelPoints;}
set { _modelPoints = value; }
}
}
【问题讨论】:
-
不要使用单独的类,而是在 Model 类而不是 ModelPoint 类中构建点数组。
标签: c# asp.net ajax serialization