我的班级MyClass<t>
有以下方法
private static bool TypeHasProperty(string NameOfPropertyToMatch)
{
var properties = typeof(t).GetProperties();
var requiredProperty = properties.First(
a => a.Name == NameOfPropertyToMatch);
if (requiredProperty == null)
{
return false
};
return true;
}
这在静态方法的开头调用:
MyClass<t>.SendToJavaScript(t InstanceOfType, string NameOfPropertyWithinType)
.
在继续之前确保它InstanceOfType
实际上具有该名称的属性,否则不会抛出异常,直到 waaaaaay 下线(此信息最终将被序列化并发送到 Javascript 应用程序,该应用程序需要知道要访问哪个属性为了完成它的工作)。
我想要一种好的、类型安全的方法来调用该方法,如果我决定稍后更改我的属性的名称,它不会导致验证失败。
例如,我不想这样称呼它:
MyClass<Person>.SendToJavaScript(MyPerson, "Name")
因为如果我决定在课堂上改变Name
,我必须确保进来并改变那根魔法线。LastName,
Person
我想要的是这样的:
MeClass<Person>.SendToJavaScript(
MyPerson,
TypeOf(Person).Properties.Name.ToString())
因此,如果我使用 Refactoring 更改Name
为LastName
,IDE 将在那里扫描并更改我的调用。
有这样的东西存在吗?还是我在重构时只需要小心?(我爱我一些F2
)