为什么我无法使用 .NET Reflector 反编译 DataRowExtensions 方法?

发布于 2024-11-09 00:57:49 字数 510 浏览 0 评论 0原文

当我加载时

C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.0\System.Data.DataSetExtensions.dll

(很快将被 ILSpy 取代),然后打开 System.Data .DataRowExtensions,当我查看方法Field(DataRow,DataColumn):T时,C#源代码只是:

public static T Field<T>(this DataRow row, DataColumn column)
{
}

我期望看到至少一行代码在这样的方法中:

return (T)row[column];

为什么该方法会像第一个代码示例中那样显示为空?

When I load

C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.0\System.Data.DataSetExtensions.dll

in .NET Reflector (soon to be replaced by ILSpy), and open System.Data.DataRowExtensions, when I look at the method Field<T>(DataRow,DataColumn):T, the C# source code is just:

public static T Field<T>(this DataRow row, DataColumn column)
{
}

I was expecting to see at least one line of code in the method like:

return (T)row[column];

Why would the method appear empty as in the first code example?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

南风起 2024-11-16 00:57:49

C:\Program Files\Reference Assemblies 中的程序集仅供“参考”,由 Visual Studio 用于 支持多目标。通常不包含任何实现细节,仅包含成员。

与此问题这个

您需要加载真实的程序集才能查看实现。通常,在调试时,如果找不到程序集,您可以查看程序集所在的位置。

The assemblies in C:\Program Files\Reference Assemblies are for "reference" only, and are used by Visual Studio to support multi-targeting. The don't generally contain any implementation details, just the members.

Similar to this question and this one.

You would need to load the real assembly to see the implementation. Generally, when debugging you can see where the assemblies are located, if you can't find them.

擦肩而过的背影 2024-11-16 00:57:49

中看到该方法

  • 我可以在C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.5\System.Data.DataSetExtensions.dll
  • C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\System.Data 。数据集扩展.dll

public static T Field<T>(this DataRow row, DataColumn column)
{
    DataSetUtil.CheckArgumentNull<DataRow>(row, "row");
    return UnboxT<T>.Unbox(row[column]);
}

I can see the method in both

  • C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.5\System.Data.DataSetExtensions.dll
  • C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\System.Data.DataSetExtensions.dll

.

public static T Field<T>(this DataRow row, DataColumn column)
{
    DataSetUtil.CheckArgumentNull<DataRow>(row, "row");
    return UnboxT<T>.Unbox(row[column]);
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文