我想从内存中释放所有属性。
我必须打破哪个参考,以便从内存中清除这些属性?
我在我的应用程序中没有找到任何关于这些属性的引用,但它们仍然没有发布。
[System.AttributeUsage(System.AttributeTargets.Property)]
public class AttributeEx : System.Attribute
{
....
}
参考链:
答案 0 :(得分:3)
我必须打破哪个参考,以便从内存中清除这些属性?
检查属性的实例仅在 时创建,而不是在创建使用这些属性修饰的类型的实例时创建。 E.g。
var attrs = typeof(ClassWithAttribute).GetCustomAttributes();
只要attrs
是一个局部变量,该属性的生命周期就会非常短,很快就有资格进行垃圾收集。
请注意,每次调用GetCustomAttributes
时,都会实例化这些属性。