【发布时间】:2020-08-16 11:38:08
【问题描述】:
在以下代码中,System.Core.dll 没有从编译中输出,因为 .cs 文件中没有使用 LINQ 扩展方法:
using System.Collections.Generic;
using System.Linq;
namespace LinqTestFramework
{
class Program
{
static void Main(string[] args)
{
var dict = new Dictionary<int, string>()
{
{ 1, "David" }
};
}
}
}
但是,在调试期间,我希望能够在 dict 对象上调用 LINQ 扩展方法并在 Watch 窗口中查看结果。
如何在编译后强制包含 System.Core.dll,以便在调试期间可以访问 LINQ 扩展方法?
更新:
我尝试过包含使用 LINQ 的代码。我发现这在编译输出中确实包含 System.Core.dll,但是代码在运行时仍然不可用:
我必须取消注释引用使用 Linq 的代码的那一行,以便能够在 Watch 窗口中的调试期间使用 Linq 扩展方法。
有什么方法可以在调试过程中访问 Linq 扩展方法,而无需参考使用 Linq 扩展方法的代码?
【问题讨论】:
-
使用Assembly.Load,就可以在调试窗口中使用了。
-
@eocron 在 System.Core.dll 包含在编译输出中时有效。但是为此,我需要编写使用 Linq 的代码(不必调用)。