获取对私有成员名的直接引用,而不是使用字符串
本文关键字:字符串 引用 成员 获取 | 更新日期: 2023-09-27 18:12:03
我正在使用一个库,它要求我传递我的私有成员的名字,大概是因为它可以在内部做一些反射:
m_MaterialsProp = serializedObject.FindProperty("m_Materials");
当我重构和移动东西时,确保这些字符串保持正确就变成了一场噩梦。
我是否有可能获得对私有成员的安全引用,并将成员名称传递给函数?
public string GetMemberName<T>(Expression<Func<T>> memberExpression)
{
MemberExpression expressionBody = (MemberExpression)memberExpression.Body;
return expressionBody.Member.Name;
}
您可以在这里采取的一种方法(不显示任何代码,您必须自己查找)是为Fields
使用将与此库一起使用的自定义Annotation
。
然后你可以使用Reflection
找到所有的Fields
为你的类有你的Annotation
。这样,如果您更改了实际字段的名称,注释保持不变,您仍然可以找到您的字段。
将类作为参数的实用程序方法可以为您提供该类所需的所有字段。