我的类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
实际上有该名称的属性,否则异常将不会被抛出直到很长一段时间(这些信息最终将被序列化并发送到 JavaScript 应用程序,需要知道要访问哪个属性才能完成任务)。
我想要一种好的、类型安全的方式来调用该方法,如果将来我决定更改属性的名称,它不会导致验证失败。
例如,我不想这样调用它:
MyClass<Person>.SendToJavaScript(MyPerson, "Name")
如果我决定在Person
类中将Name
更改为LastName
,那么我需要确保回来更改这个魔法字符串。
我想要的是这样的:
MeClass<Person>.SendToJavaScript(
MyPerson,
TypeOf(Person).Properties.Name.ToString())
所以,如果我使用重构将
Name
更改为LastName
,IDE将扫描该处并同时更改我的调用。是否存在类似的工具?或者我只需要在重构时小心一些?(我喜欢使用)
T
是否实际拥有成员P
吗?似乎不可能以合法的方式调用TypeHasProperty
使其失败。 - JHixson