2011-07-15 114 views
1

在我的工作上,我使用v2.0項目工作。 我需要知道這是私人領域是關係到每個屬性通過具有反射C的屬性獲取私有字段#

class Foo { 

private string _bar; 
public string BigBar 
{ 
    get { return _bar; } 
}} 

有人知道我怎麼能檢查與反思

+0

這不能通過反射來完成。也許你不應該需要它。 – Snowbear

+1

你爲什麼要這樣? – TJHeuvel

+0

'public string Evil {get {return _foo + _bar; }}' – SLaks

回答

1

這種關係。如果你正在尋找的auto-like-properties,支持字段,那麼唯一的方法是查看生成的IL,例如使用Mono.Cecil等工具。

您必須查找特定的IL模式,並且還必須檢查後臺字段是否僅用於屬性中,而不是其他地方。

模式將是產生IL此塊的代碼:

private string _foo; 
public string Foo { get { return _foo; } set { _foo = value; } } 

getset是可選的,但至少有一個必須存在)

1

你需要的是一個反編譯器,以看到類的內部工作:

Decompilers

0

雖然你只能d使用Reflection for Auto-implemented屬性,請考慮使用以下開源反編譯庫:http://wiki.sharpdevelop.net/ILSpy.ashx。你可以反編譯相關的方法,看看他們做了什麼。

相關問題