5
var attributes = typeof(MyClass)
.GetEvents()
.SelectMany(n => n.GetCustomAttributes(true));
但是我在該屬性集合中只看到BrowsableAttribute
。
如何獲取field:NonSerialized
屬性信息?
var attributes = typeof(MyClass)
.GetEvents()
.SelectMany(n => n.GetCustomAttributes(true));
但是我在該屬性集合中只看到BrowsableAttribute
。
如何獲取field:NonSerialized
屬性信息?
field:
語法表示該屬性附加到由編譯器生成的字段(以支持該字段)。你永遠不會知道這個字段的名稱,因爲它是一個實現細節,它不是EventInfo
的一部分(因爲事件不需要專門支持字段 - 它可以被代理,或者是一個EventHandlerList
等) 。
如果您需要該級別的信息,則可能需要手動實施事件(而不是像所描述的「字段式事件」),但是;在現實中,你很少需要知道這一點。這個信息是確實只需要BinaryFormatter
等,說「脫手」。
另一種方法是使用GetFields()
,但是再次;不存在將字段映射到事件的可靠方法。
'GetFields'具有適當的'BindingFlags'會爲您提供所有的字段,但是要進一步瞭解,我們需要知道您*開始*的哪些信息,以及您想要*獲得的信息。你是否希望能夠說:「對於每場類似事件,請告訴我*該事件背後的領域屬性*」?或者,「是否有任何」NonSerialized「字段,包括生成的字段?」足夠?要麼...? – AakashM 2012-01-30 15:16:21