大佬教程收集整理的这篇文章主要介绍了使用某些属性/类在 Blazor Webassembly 中调试时未绑定断点,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用 VS 2019 (16.8.4) 开发模块化 blazor 应用程序 (5.0.2),其结构如下:
一个“主要”解决方案,包括
引用主要 RCL(基本组件等)的几个“子”解决方案,其中包括
所有项目都有一个构建后事件来将 DLL 和 PDB 文件复制到某个路径,例如D:\TMP。 SubSolution 通过此路径引用 MainRCL 库。 Main Wasm 项目也通过此路径引用 SubRCL 库(用于在启动时添加服务/Program.cs)。
@H_653_2@mainRCL 没有对 SubRCL 的引用(根据可配置的 UI 定义,组件通过反射/buildrenderTree() 渲染)。调试主要解决方案工作得很好(IIS Express/应用程序调试)。 然后我尝试调试 SubModules -> 我从 MainSolution 开始调试并在这个 VS 实例中打开来自 SubModules 项目的文件。
在某些库中,调试工作正常,但不适用于 SubRCL(“未绑定断点”)。然后我能够使用示例解决方案重现(非常奇怪的)问题:
“MainRCL”提供 2 个属性:
[AttributeUsage(AttributeTargets.Class)]
public sealed class TestNoEnumAttribute : Attribute
{
public String name { get; set; }
public String Mode { get; set; }
public TestNoEnumAttribute(String name,String modE)
{
name = name;
Mode = mode;
}
}
[AttributeUsage(AttributeTargets.Class)]
public sealed class TestEnumAttribute : Attribute
{
public String name { get; set; }
public EventexecutionMode Mode { get; set; }
public TestEnumAttribute(String name,EventexecutionMode modE)
{
name = name;
Mode = mode;
}
}
public enum EventexecutionMode
{
automaticAll = 0,ManualConfiguration = 2
}
SubRCL 在测试方法中使用这些属性:
[TestNoEnum("Test","EventexecutionMode.ManualConfiguration")]
//[TestEnum("Test",EventexecutionMode.ManualConfiguration)]
public class Module1Test
{
public int IncreaseNum(int num)
{
var x = new Part1();
var part1Num = x.Dostuff(num);
var newNum = part1Num + 1;
return newNum;
}
}
被调用的类“Part1()”位于SubSolution的另一个库中
Part1 类中“Dostuff()”方法处的断点总是被命中(在单独的 .net5 库中)。 “IncreaseNum()”方法处的断点仅在未使用 [TestEnum] 属性时调用。 一旦使用 [TestEnum] 属性,就会出现“未绑定断点”;另一个库中的“Dostuff()”方法中的断点仍然命中。
然后我尝试将现有项目“添加到 SubSolution”并添加 MainWasm 项目并直接从 SubSolution 开始调试 -> 相同的行为。
是否有我监督的事情(例如关于 DLL 引用或 PDB 文件复制)?
这已经是我尝试调试这些模块化结构解决方案的第二种方法 - 首先我尝试通过 IIS (How to debug Blazor Webassembly on IIS with VS by attaching to Chrome?) 进行调试,但这也没有成功。
发现在使用带有枚举参数的属性时调试存在问题:
https://github.com/dotnet/aspnetcore/issues/25380
-> 我替换了枚举参数并且调试现在工作正常-到目前为止没有得到任何反馈
,由于“未绑定断点”,我的 Blazor WASM 遇到了同样的问题,无法在 VS 中进行调试。我有多个项目在同一个解决方案下运行,虽然最初调试适用于 WASM,但一段时间后它停止了。
最终我找到了解决方法,等待所有项目加载完毕,然后我可以禁用“未绑定”断点并重新选择它。然后它按预期工作。
这不是一个理想的解决方案(尤其是当您在故障排除时有多个断点时),但它是可行的。
以上是大佬教程为你收集整理的使用某些属性/类在 Blazor Webassembly 中调试时未绑定断点全部内容,希望文章能够帮你解决使用某些属性/类在 Blazor Webassembly 中调试时未绑定断点所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。