在我的工作中,我使用一个v2.0项目。我需要知道哪个是与每个属性
相关的私有字段class Foo {
private string _bar;
public string BigBar
{
get { return _bar; }
}}
有人知道我怎么检查这个关系与反射
如果您正在寻找auto-like属性的支持字段,那么唯一的方法是使用Mono之类的工具查看生成的IL。比如Cecil。
您必须查找特定的IL模式,并且还必须检查是否只在属性中使用了backing字段,而不在其他地方使用。
模式将是为这段代码生成的IL:
private string _foo;
public string Foo { get { return _foo; } set { _foo = value; } }
(get
和set
是可选的,但必须至少存在一个)
您需要的是一个反编译器来查看类的内部工作:
解码器
虽然您只能对自动实现属性的反射执行此操作,但请考虑使用这个开源反编译库:http://wiki.sharpdevelop.net/ILSpy.ashx。您可以反编译相关的方法,看看它们是做什么的。