C#.Net组件开发 - 使用Attach to Process实时调试设计器代码(转)

简介: 本文转载于:CS框架网http://www.csframework.com/archive/2/arc-2-20110829-1811.htmC#.Net组件开发 - 使用Attach to Process实时调试设计器代码组件设计的调试对象为两个:一是我们关注的组件本身(Component/Control),二是组件的设计器(Component Designer/Control Designer)。

本文转载于:CS框架网http://www.csframework.com/archive/2/arc-2-20110829-1811.htm

C#.Net组件开发 - 使用Attach to Process实时调试设计器代码


组件设计的调试对象为两个:一是我们关注的组件本身(Component/Control),二是组件的设计器(Component Designer/Control Designer)。调试组件本身只要设断点运行程序即可调试,因组件设计器在设计时工作而不是运行时,所以设断点是不能调试的。

大多数情况下开发人员用MessgeBox来弹出信息进行调试,这是一种简单可靠的方式,但是无法进入到代码内部实时调试,所以阻碍了开发进度,有种最佳解决方案,是通过Debug菜单的Attach to Process 方式支持运行时实时调试。

Attach to Process启动方式:

贴图图片


组件和控件的区别请参考

控件与组件的区别(Control&Component的区别)

http://www.csframework.com/archive/2/arc-2-20110630-1675.htm


组件编程模型图:


贴图图片


Attach to Process功能介绍:


VS IDE的 Debug菜单下面Attach to Process附加进程是用来把一个进程中的应用附加到VS调试环境中,对该应用进行调试,使用此技术的意义就是应用的运行和VS调试环境可以分开,一般 的应用调试就是跟着调试环境一起启动和结束,每次调试都需要重新从头启动应用。  那如果你只想调试调试应用的某一场景,那么你不得不浪费时间去推进到那个场景才能进行调试。 如果我们在VS IDE之外来启动应用,通过Attach的方式就会把该应用添加到VS IDE里面来,你多次的启动IDE都不会打断应用的运行。


Attach to Process 实时调试操作步骤:


一. 运行两个VS开发环境,打开同一个解决方案,如下图:



贴图图片

二. 在第二个解决方案(B)中设置调试断点,如下图:


贴图图片

三. 在第二个解决方案(B)中打开Debug\Attach to Process菜单,如下图:


贴图图片


四. Attach to Process窗体,在Available Processes列表中选择devenv.exe进程。

注:我们刚才打开两个VS解决方案理论上有两个devenv.exe才对,为什么只有一个?原因是当前解决方案的devenu进程是不支持调试的,不能附加到自己的进程进行调试.

选择devenv.exe ,点Attach按钮,如下图:


贴图图片


五. Attach to Process之后自动进入运行(调试)状态:


贴图图片


六. 切换到第一个解决方案(A)进行设计组件操作,如“生成MyNodeComponent的设计时代码”。



贴图图片

七. 当运行到设断点的代码处时,自动激活第二个解决方案(B),这时可看到进入实时调试状态,我们可以查看到组件或对象的实时内容。


贴图图片


八. 不过,调试状态下不支持修改代码的,否则会弹出Edit and Continue对话框。




贴图图片

版权:C/S框架网,作者:孙中吕,如转载请注明出处。
目录
相关文章
|
10天前
|
数据可视化 网络协议 C#
C#/.NET/.NET Core优秀项目和框架2024年3月简报
公众号每月定期推广和分享的C#/.NET/.NET Core优秀项目和框架(每周至少会推荐两个优秀的项目和框架当然节假日除外),公众号推文中有项目和框架的介绍、功能特点、使用方式以及部分功能截图等(打不开或者打开GitHub很慢的同学可以优先查看公众号推文,文末一定会附带项目和框架源码地址)。注意:排名不分先后,都是十分优秀的开源项目和框架,每周定期更新分享(欢迎关注公众号:追逐时光者,第一时间获取每周精选分享资讯🔔)。
|
1月前
|
C# Windows
C#通过代码实现快捷键编辑
C#通过代码实现快捷键编辑
|
1月前
|
SQL 数据库 C#
C# .NET面试系列十一:数据库SQL查询(附建表语句)
#### 第1题 用一条 SQL 语句 查询出每门课都大于80 分的学生姓名 建表语句: ```sql create table tableA ( name varchar(10), kecheng varchar(10), fenshu int(11) ) DEFAULT CHARSET = 'utf8'; ``` 插入数据 ```sql insert into tableA values ('张三', '语文', 81); insert into tableA values ('张三', '数学', 75); insert into tableA values ('李四',
62 2
C# .NET面试系列十一:数据库SQL查询(附建表语句)
|
1月前
|
SQL 开发框架 数据可视化
企业应用开发中.NET EF常用哪种模式?
企业应用开发中.NET EF常用哪种模式?
|
1月前
|
开发框架 算法 搜索推荐
C# .NET面试系列九:常见的算法
#### 1. 求质数 ```c# // 判断一个数是否为质数的方法 public static bool IsPrime(int number) { if (number < 2) { return false; } for (int i = 2; i <= Math.Sqrt(number); i++) { if (number % i == 0) { return false; } } return true; } class Progr
58 1
|
1月前
|
并行计算 安全 Java
C# .NET面试系列四:多线程
<h2>多线程 #### 1. 根据线程安全的相关知识,分析以下代码,当调用 test 方法时 i > 10 时是否会引起死锁? 并简要说明理由。 ```c# public void test(int i) { lock(this) { if (i > 10) { i--; test(i); } } } ``` 在给定的代码中,不会发生死锁。死锁通常是由于两个或多个线程互相等待对方释放锁而无法继续执行的情况。在这个代码中,只有一个线程持有锁,且没有其他线程参与,因此不
102 3
|
4天前
|
开发框架 前端开发 JavaScript
采用C#.Net +JavaScript 开发的云LIS系统源码 二级医院应用案例有演示
技术架构:Asp.NET CORE 3.1 MVC + SQLserver + Redis等 开发语言:C# 6.0、JavaScript 前端框架:JQuery、EasyUI、Bootstrap 后端框架:MVC、SQLSugar等 数 据 库:SQLserver 2012
|
30天前
|
数据安全/隐私保护 Windows
.net三层架构开发步骤
.net三层架构开发步骤
9 0
|
30天前
深入.net平台的分层开发
深入.net平台的分层开发
47 0
|
1月前
|
开发框架 人工智能 .NET
C#/.NET/.NET Core拾遗补漏合集(持续更新)
C#/.NET/.NET Core拾遗补漏合集(持续更新)

相关实验场景

更多