如何在C#中收集GC的属性?

时间:2015-05-07 08:05:09

标签: c# garbage-collection attributes

我想从内存中释放所有属性。

我必须打破哪个参考,以便从内存中清除这些属性?

我在我的应用程序中没有找到任何关于这些属性的引用,但它们仍然没有发布。

    [System.AttributeUsage(System.AttributeTargets.Property)]
    public class AttributeEx : System.Attribute
    {
        ....
    }

参考链: enter image description here

1 个答案:

答案 0 :(得分:3)

  

我必须打破哪个参考,以便从内存中清除这些属性?

检查属性的实例仅在 时创建,而不是在创建使用这些属性修饰的类型的实例时创建。 E.g。

var attrs = typeof(ClassWithAttribute).GetCustomAttributes();

只要attrs是一个局部变量,该属性的生命周期就会非常短,很快就有资格进行垃圾收集。

请注意,每次调用GetCustomAttributes时,都会实例化这些属性。