13
以字符串形式获取属性名称
(请参阅下面我使用接受的答案创建的解决方案) 我正在尝试改善某些涉及反射的代码的可维护性。该应用程序具有.NET Remoting接口,该接口(除其他外)公开了一种称为Execute的方法,用于访问应用程序未包含在其发布的远程接口中的部分。 这是应用程序指定通过Execute可以访问的属性(在此示例中为静态属性)的方式: RemoteMgr.ExposeProperty("SomeSecret", typeof(SomeClass), "SomeProperty"); 因此,远程用户可以致电: string response = remoteObject.Execute("SomeSecret"); 然后该应用将使用反射来查找SomeClass.SomeProperty并将其值作为字符串返回。 不幸的是,如果有人重命名SomeProperty而忘记更改ExposeProperty()的第3个参数,则会破坏此机制。 我需要相当于: SomeClass.SomeProperty.GetTheNameOfThisPropertyAsAString() 用作ExposeProperty中的第三个参数,因此重构工具将负责重命名。 有没有办法做到这一点?提前致谢。 好的,这就是我最终创建的内容(基于我选择的答案和他引用的问题): // <summary> // Get the name of a static or instance property from a property access lambda. // </summary> // <typeparam name="T">Type of the property</typeparam> // <param name="propertyLambda">lambda expression of the …
203
c#
reflection
properties