我目前正在创建一个迁移数据的应用程序,数据可能非常复杂,因为它可以包含它自己,例如
--Boss
--Supervisor
---Manager
---Supervisor
---Boss
----Employee
然后,应用程序将数据显示为一个复选框,其中一个用户可以选择他们想要的数据,现在的问题是幕后我加载数据并希望保留一个单独的原始源列表,我获取数据从
问题是,如果我想减小Boss对象的大小(顶层一级,在supervisor对象上设置null会减少其内存大小,或者只是在内存中创建一个孤立元素而只是增加我的应用程序内存使用?
NB。层次结构中的元素都来自相同的基本类型,并且格式为List ..of Lists ... of lists ..等,其他属性附加到它们可能具有相同的基本类型,无法显示在层次结构上。
这是我正在使用的代码的示例
public class AttributeConversion : BaseConversion
{
public AttributeConversion(string displayName)
: base(displayName)
{
//set up value
}
public AttributeConversion()
{
//default constructor for the serializer class
}
[XmlIgnore]
[Identity]
public int AttributeID { get; set; }
public string Name { get; set; }
//[XmlIgnore]
public int DataTypeID { get; set; }
[ControlAttribute]
[XmlArray("AttributeLookupSets")]
[XmlArrayItem("AttributeLookupSet")]
public List<AttributeLookupSetConversion> AttributeLookupSetConversions { get; set; }
public AttributeLookupSourceConversion AttributeLookupSource { get; set; }
[XmlElement("AttributeSetAttribute")]
public AttributeSetAttributeConversion AttributeSetAttributeConversion { get; set; }
[XmlElement("AttributeInteger")]
public AttributeIntegerConversion AttributeIntegerConversion { get; set; }
[XmlElement("AttributeFloat")]
public AttributeFloatConversion AttributeFloatConversion { get; set; }
[XmlElement("AttributeText")]
public AttributeTextConversion AttributeTextConversion { get; set; }
[XmlElement("AttributeDate")]
public AttributeDateConversion AttributeDateConversion { get; set; }
所以在这个特定的实例中,我想用XmlElement或XmlArray属性来取消所有对象。目标是展平该层次结构,然后将所有项目设置为null,这样我可以使用该列表作为对象层次结构中我随时拥有的项目的参考,但我不确定内存使用情况,所以我想要至少确保我摆脱任何可能浪费的记忆。