已知关系
我们知道那个意味着
public string Notes
{
get { return notes; }
set { SetPropertyValue("Notes", ref notes, value); }
}
未知关系
我们不知道这个类(因为多个类可能有一个具有此名称的属性),或者即使该属性存在于此处
public void SomeStuffeChanged()
{
PropertyEditor propertyEditor = ((DetailView)View).FindItem("Anniversary") as PropertyEditor;
// do some stuff
}
我可以创建一个定义类/ es,它将包含所有属性作为const,这样我就可以避免我的属性的冗余,但它也可以维护这个定义。
当我想要反思时,我会做MemberName.GetMemberName<Contact>( x=> x.Anniversary)
并且任何改变都会自动应用,但是当我有第二种情况时,我假设可能有这个属性。我无法使用show反射,因为即使代码仍然有效,属性名称也可能在其他类中更改。反思也增加了一些开销。
该问题与DevExpress密切相关,因为他们在所有地方都使用“MagicStrings”而你无法更改基类