我有一个要求,我需要反序列化并创建一个没有默认构造函数的类(表)的少数对象。
我的代码片段
else if (reader.Name == "Tables")
{
reader.ReadStartElement();
tables = SerializationHelper<Table>.DeserializeList(reader);
}
SerializationHelper中DeserializeList的定义如下:
public static List<T> DeserializeList(XmlReader reader)
{
XmlSerializer ser = new XmlSerializer(typeof(T));
List<T> returnval = new List<T>();
while (reader.NodeType != XmlNodeType.EndElement)
{
T result = (T)ser.Deserialize(reader);
returnval.Add(result);
}
return returnval;
}
这是一个现有的工作代码,在最近的更改中,我们必须向类中的所有构造函数添加一个任务参数
这里的Table类现在没有任何无参数构造函数。
在DeSerializing Table对象时,我想知道是否可以通过至少一个参数传递。
我已经阅读了以下内容但他们使用的是JSON.net,在我的情况下不能使用它。
JSON.net: how to deserialize without using the default constructor?
答案 0 :(得分:-1)
public class Tables
{
public Tables(object Mandate)
{
}
private Tables()
{
// Private parameterless constructor. Leave private so that it forces everyone to use the Mandate parameter but allows serialization to work.
}
}