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