gpt4 book ai didi

c# - .NET Reflector 和 getters/setters 问题

转载 作者:行者123 更新时间:2023-11-30 13:05:47 24 4
gpt4 key购买 nike

我正在使用最新的 .NET Reflector 反汇编其源代码几乎无法恢复的内部遗留应用程序。我需要找到一个讨厌的错误的原因,然后可能修补它。 Reflector 在重新创建项目结构方面像往常一样做得很好,但很快我发现 一些 属性调用被“扩展”到它的 get_()set_() 方法签名,使源代码无法编译。

起初,我以为每个get/set 调用都有问题。但仔细一看,其中有几个是可以的,而其他的(尤其是 OleDbCommand 和 Forms.Control 属性)将生成为 get_()set_()

使用正则表达式的快速 Visual Studio“搜索/替换”解决了这些情况,但这很尴尬。有没有办法让 Reflector 的行为正确

编辑 1 - 以下示例有问题的代码:

/* Generated by .NET Reflector 6.1.0.11 */
/* The variable selectCommand is a OleDbCommand. */
string parameterName = "@P" + Convert.ToString(num);
selectCommand.set_CommandText(selectCommand.get_CommandText() + " WHERE SIGLA = " + parameterName);
/*
Expected something like this (as ugly as it may seem):
selectCommand.CommandText = selectCommand.CommandText + " WHERE SIGLA = " + parameterName;
*/

编辑 2 - 程序集是在 Release模式下构建的。

最佳答案

您在哪里查看 Reflector 中的源代码?在当前版本(撰写本文时为 6.1.0.11)中,反汇编一个类型然后单击底部的“展开方法”会生成带有代码的完整类定义,包括正确的属性语法(get { .. . set { ... } )

关于c# - .NET Reflector 和 getters/setters 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3025304/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com