2011-07-15 117 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。你可以反编译相关的方法,看看他们做了什么。

相关问题