如何在Visual Studio 2022中查找C#动态类型属性的引用?
在Visual Studio 2022中查找C#动态变量的特定属性引用
问题说明
当使用dynamic类型变量时,直接右键点击其属性(比如示例中的myProp)选择「查找所有引用」,VS2022的引用面板不会返回任何结果;而如果右键点击动态变量本身(比如mySettings),会返回该变量所有属性的引用,无法筛选出特定属性的使用场景。示例代码如下:
dynamic mySettings = someObj; mySettings.myProp = "abc"; // 需要查找该属性的所有引用 mySettings.myProp2 = 123; if(mySettings.myProp == "abc"){ mySettings.myProp = "cde"; mySettings.myProp2 = 456; }
可行方案
由于dynamic类型的动态特性,VS无法通过静态分析精准识别属性引用,可采用以下替代方法:
方法1:使用「查找全部」功能(指定文件类型)
打开Visual Studio的「查找和替换」对话框(快捷键Ctrl+Shift+F),在「查找内容」中输入精确的属性调用格式(比如mySettings.myProp),然后在「查找选项」中指定文件类型为*.cs,点击「查找全部」即可在结果面板中看到所有该属性的引用位置。方法2:利用正则表达式缩小搜索范围
如果担心出现误匹配(比如其他变量也有同名属性),可以使用正则表达式进行精准匹配:在「查找和替换」对话框中勾选「使用正则表达式」,输入匹配规则(比如mySettings\.myProp,注意转义.),同样指定文件类型后执行查找,能更精准地定位目标引用。
内容的提问来源于stack exchange,提问作者alxinvisible
相关产品推荐
相关产品推荐

