在我的工作上,我使用v2.0項目工作。 我需要知道這是私人領域是關係到每個屬性通過具有反射C的屬性獲取私有字段#
class Foo {
private string _bar;
public string BigBar
{
get { return _bar; }
}}
有人知道我怎麼能檢查與反思
在我的工作上,我使用v2.0項目工作。 我需要知道這是私人領域是關係到每個屬性通過具有反射C的屬性獲取私有字段#
class Foo {
private string _bar;
public string BigBar
{
get { return _bar; }
}}
有人知道我怎麼能檢查與反思
這種關係。如果你正在尋找的auto-like-properties,支持字段,那麼唯一的方法是查看生成的IL,例如使用Mono.Cecil等工具。
您必須查找特定的IL模式,並且還必須檢查後臺字段是否僅用於屬性中,而不是其他地方。
模式將是產生IL此塊的代碼:
private string _foo;
public string Foo { get { return _foo; } set { _foo = value; } }
(get
和set
是可選的,但至少有一個必須存在)
你需要的是一個反編譯器,以看到類的內部工作:
雖然你只能d使用Reflection for Auto-implemented屬性,請考慮使用以下開源反編譯庫:http://wiki.sharpdevelop.net/ILSpy.ashx。你可以反編譯相關的方法,看看他們做了什麼。
這不能通過反射來完成。也許你不應該需要它。 – Snowbear
你爲什麼要這樣? – TJHeuvel
'public string Evil {get {return _foo + _bar; }}' – SLaks