我有一个Type
r类XmlSerialize
,它在TargetParameterCountException
上抛出了一个prop.SetValue()
。
Type
从我的列表Types
[System.Xml.Serialization.XmlArrayItemAttribute("Type", IsNullable = false)]
public List<Type> Types { get; set; }
和类本身
[System.SerializableAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
public partial class Type
{
[System.Xml.Serialization.XmlAttributeAttribute()]
public int TypeCode { get; set; }
[System.Xml.Serialization.XmlAttributeAttribute()]
public int NumberOfUnits { get; set; }
public bool ShouldSerializeNumberOfUnits() { return NumberOfUnits > 0; }
}
发件人:Xerillio answer for "Insert values in class without explicit writing them"
这是为了自动生成包含所有子类的完整类以及演示数据。
public static void SetDefaults(object testObj)
{
PropertyInfo[] propertyInfos = testObj.GetType().GetProperties();
foreach (PropertyInfo propertyInfo in propertyInfos)
{
if (propertyInfo.Name == "Count" || propertyInfo.Name == "Capacity" || propertyInfo.SetMethod == null)
{
continue;
}
var propType = propertyInfo.PropertyType;
if (propType == typeof(int))
{
// [...]
}
else
{
var ctor = propType.GetConstructor(Type.EmptyTypes);
var propertyObject = ctor.Invoke(new object[0]);
SetDefaults(propertyObject);
propertyInfo.SetValue(testObj, propertyObject);
}
}
}
现在,如果propertyObject
被写入并准备通过propertyInfo
在TargetParameterCountException
中进行设置,则可以。
可能与未设置的索引和计数属性有关,但STFW无法找到任何内容。
我是否需要在任何地方设置count
和index
属性,或者ShouldSerialize...
变量是否有问题?