小编Eri*_*tas的帖子

调试性能问题的最佳方法是什么?

我正在为C#.NET中的另一个程序编写一个插件,并且遇到性能问题,其中命令需要的时间比我想的要长很多.插件对主机程序中的事件作出反应,并且还取决于主机程序SDK的实用程序方法.我的插件有很多递归函数,因为我正在对树结构进行大量的读写操作.另外,我的插件和主机应用程序之间有很多事件订阅,以及插件中类之间的事件订阅.

我怎样才能弄清楚完成任务需要花费多长时间?我不能使用常规断点样式调试,因为它不是它不起作用它只是它太慢了.我已经设置了一个静态的"LogWriter"类,我可以从我的所有类中引用它,这样我就可以从我的代码中将带时间戳的行写入日志文件.还有另外一种方法吗?visual studio是否保留了我可以使用的某种带时间戳的日志?应用程序关闭后,有什么方法可以查看调用堆栈吗?

.net c# debugging performance

6
推荐指数
2
解决办法
4338
查看次数

为什么垃圾收集器无法确定引用彼此的对象何时是孤立的

据我所知,在像Java或C#这样的托管语言中,有一种称为垃圾收集器的东西,每隔一段时间检查一次是否有任何不再引用的对象实例,因此是完全孤立的,然后清除掉记忆 但是,如果程序中的任何变量都没有引用两个对象,而是相互引用(如事件订阅),则垃圾回收器将看到此引用而不清除内存中的对象.

为什么是这样?为什么垃圾收集器不能确定任何对象都不能被正在运行的程序的任何活动部分引用并处理它们.

c# garbage-collection

6
推荐指数
2
解决办法
1454
查看次数

DataGridView没有显示实现ICustomTypeDescriptor的对象的正确性

我在DataGridView中显示对象列表.一切都很好.根据对象的属性将列自动添加到DataGridView中.

现在我改变了我在网格中显示的类来实现ICustomTypeDescriptor.但是现在,当我将其DataSource设置为我的自定义对象列表时,网格现在不再显示任何列或行.

我猜这与ICustomTypeDescriptor的事实有关,每个网格的每一行中显示的每个实例都可以返回一组不同的属性.

我正在实现ICustomTypeDescriptor,以便我可以允许用户在运行时动态地向对象添加自定义属性.这些自定义属性应该是可见的,并可通过DataGridView进行编辑.

为什么DataGridView看不到我的ICustomTypeDescriptor方法?有没有其他方法可以动态地向将在DataGridView中显示的对象添加属性?

c# datagridview winforms icustomtypedescriptor

6
推荐指数
1
解决办法
4845
查看次数

XML文件的数据量是多少,什么是基于文件的数据库备选方案?

我正在编写一个跟踪音乐库的应用程序,我需要一种方法来存储音轨,专辑和其他数据列表.通常对于这样的事情,我会使用XML文件来保存数据.然后我会使用ADO.NET DataTable来操纵数据.但是这个程序可能会节省大量的数据项.此外,我希望能够快速搜索,排序和过滤歌曲表.

所以我的第一个问题是,在使用关系数据库更好的想法之前,应该在单个XML文件中存储多少数据的最佳实践限制?其次,我将这些数据存储在单个文件中的替代选项有哪些.请记住,我不希望程序依赖于运行某个可连接的服务器(MS SQL,MySQL等).我希望数据存储在一个文件中.我也不是MS Access的忠实粉丝.因此,虽然ADO.NET有多种方法可以访问MDB文件,但我正在寻找其他选项.

我正在考虑的另一个选择是坚持将我的"Track"对象序列化/序列化到XMl或从XMl序列化.然而,在集合上使用Linq进行搜索,排序和过滤等任何数据库类型的操作.我还没有使用过Linq,所以我不确定如何做到这一点的具体细节,或者它是否是最好的选择.

c# xml linq database

6
推荐指数
1
解决办法
1603
查看次数

您是否可以在不直接访问服务器的情况下备份/创建subversion存储库的转储?

我为许多个人和工作开发项目使用托管的subversion服务.虽然他们像任何托管公司一样保留备份,但我希望能够创建我自己的本地备份以防万一.此服务允许您请求和下载备份,但他们收取费用来执行此操作.无论如何,我可以通过HTTPS连接到客户端来生成托管存储库的备份/转储吗?

svn backup

6
推荐指数
1
解决办法
1704
查看次数

我应该在哪里存储我的visual studio解决方案中引用的DLL二进制文件

在编写程序(C#.NET)时,我通常会使用从各种网站下载的外部库,例如自定义WinForm控件或其他库.即使源是可用的,我通常更喜欢引用已编译的DLL文件,而不是在我的解决方案中为第三方库或控件创建另一个整个项目.

所以我的问题是人们通常会在解决方案中存储这样的外部DLL?引用项目文件夹?解决方案文件夹?另一个文件夹

reference visual-studio

6
推荐指数
1
解决办法
4076
查看次数

DataContractSerializer如何写入私有字段?

我理解XMLSerializer如何通过使用反射来确定它应该用于序列化或反序列化XML的公共读/写字段或属性.然而,XMLSerializer要求字段是公共的和读/写.

但是,DataContractSerializer能够读取或写入类中的完全私有字段.所以我想知道如何明确给出DataContractSerializer对我的类的附加访问权限.

.net c# xml datacontractserializer xmlserializer

6
推荐指数
1
解决办法
2534
查看次数

为什么我的水平工具条会一直堆叠?

我正在使用包含三个ToolStrips的ToolStripContainer.在设计时我将ToolStrips移动到我想要的位置,它位于表单顶部的水平行中,如下所示:

替代文字

然后我关闭并保存表格.但是,如果我再次打开表单,ToolStrips最终会堆叠在ToolStripContainer的左侧,如下所示:

替代文字

如何将ToolStrips保留在我指定的位置?

c# toolstrip winforms toolstripcontainer

6
推荐指数
1
解决办法
1377
查看次数

我可以将课程内部封闭,但外部密封吗?

在C#中,是否可以创建一个可以从内部派生(未密封)的类,但是然后阻止其他人在外部引用我的库继承自我的公共类(密封)?

.net c#

6
推荐指数
2
解决办法
712
查看次数

如何确定动态数组是否未在VBScript中标注尺寸

假设我在VBScript中创建了一个动态数组

Dim myArray()
Run Code Online (Sandbox Code Playgroud)

稍后我如何检查这个数组从未被标注过尺寸?

Ubound(myArray) 'sub script out of range
Lbound(myArray) 'sub script out of range
IsEmpty(myArray) 'returns false
Run Code Online (Sandbox Code Playgroud)

arrays vbscript

6
推荐指数
1
解决办法
4175
查看次数