2 回答
TA贡献1860条经验 获得超8个赞
异常的消息告诉你,你正在试图序列匿名类型包含DateTime,DateRange以及AuctionIdentification性能和匿名类型的确没有参数构造函数(它们是不变的,所以他们的成员是通过构造函数的参数初始化)。
有问题的匿名类型在items此处创建并分配给变量:
object items = new // <--
{
deliveryDay = DateTime.Today.AddDays(-1),
deliveryDays = dr,
AuctionIdentification = Ai
};
oi.Items = new object[1] { items };
根据Items属性定义
[System.Xml.Serialization.XmlElementAttribute("AuctionIdentification", typeof(AuctionIdentification))]
[System.Xml.Serialization.XmlElementAttribute("deliveryDay", typeof(System.DateTime), DataType="date")]
[System.Xml.Serialization.XmlElementAttribute("deliveryDays", typeof(DateRange))]
public object[] Items {
get {
return this.itemsField;
}
set {
this.itemsField = value;
}
}
它的阵列objects,其中每个的实际类型object可以是所描述的3种类型中的一个- DateTime,DateRange和AuctionIdentification。
有点奇怪的设计,但这是 3rd 方服务的错,而不是你的错。在您的情况下正确的初始化(也应该修复有问题的异常)应该是直接填充数组:
oi.Items = new object[] // <--
{
DateTime.Today.AddDays(-1), // deliveryDay
dr, // deliveryDays
Ai // AuctionIdentification
};
TA贡献1827条经验 获得超8个赞
问题出在这一行:
DateRange dr = new DateRange { from = DateTime.Today.AddDays(-7), to = DateTime.Today };
您正在尝试创建一个新实例,DateRange()但它不接受您的初始化,说明您无法初始化该类,因为它没有无参数构造函数,因为您没有提供任何构造函数。
这个类的一个很好的例子是:
DateRange range = new DateRange(fromDate, toDate, CultureInfo);
或者:
return new DateRange
{
from = DateTime.Today.AddDays(-7),
to = DateTime.Today
};
- 2 回答
- 0 关注
- 480 浏览
添加回答
举报