你知道,我在任何地方都没有看到一个好的答案.是否可以将预先存在的DLL嵌入到已编译的C#可执行文件中(这样您只能分发一个文件)?如果有可能的话,怎么去做呢?
通常情况下,我很酷,只是将DLL放在外面并让安装程序处理所有内容,但是有几个人在工作,他们问我这个,老实说我不知道.
我知道异常会对性能造成损失,并且尝试避免异常通常比放弃一切大尝试/捕获更有效 - 但是try块本身呢?仅仅声明try/catch的成本是多少,即使它从不抛出异常?
我有点在这里支持自己.
我有一系列从父级继承的UserControl,它包含一些方法和事件来简化事情,因此我不必编写几乎相同代码的行和行.像你一样做.父级不包含其他控件.
我想要做的只是在父UserControl中有一个事件处理程序,它只执行父控件可以执行的操作(即,有条件地调用事件,因为父事件中定义了事件).然后我将这个事件处理程序连接到我的子控件中的所有输入框,子控件将解析输出的任务并告诉父控件是否抛出该事件.很好,干净,没有重复,复制粘贴代码(这对我来说总是会导致错误).
这是我的问题.Visual Studio认为我太聪明了一半,并警告我"方法'CheckReadiness'[父级中的事件处理程序]不能是事件的方法,因为这个类派生的类已经定义了方法." 是的,Visual Studio,这就是重点.我希望有一个事件处理程序,它只处理子类抛出的事件,它唯一的工作就是让我能够连接子代,而不必编写一行代码.我不需要那些额外的处理程序 - 我需要的所有功能自然被称为子进程处理用户输入.
我不确定为什么Visual Studio现在开始抱怨这个(因为它让我以前做过),而且我不确定如何让它消失.最好,我想这样做而不必定义一个只调用CheckReadiness的方法.造成这种警告的原因是什么原因导致它在一小时前没有出现,如何在不使用所有儿童班的小手柄的情况下让它消失?
我正在处理的程序的一个功能请求是能够保存用户输入的凭据列表,以便可以共享它们.启发此请求的特定用例是在大型企业网络上使用我们的程序,该网络由相当好的LAN组成,这些LAN通过片状WAN连接.我们的想法是,不是让我们的程序在WAN关闭时击败WAN,而是发送一个包含严密保护的管理员凭据的"配置"文件,在每个局域网中运行并压缩结果并通过电子邮件发送给它背部.
是啊.
我最初的本能是嘲笑这个请求 - 保存密码?真?当然,公司的网络部门更愿意尝试销售他们拥有的任何广域网产品 - 但事实证明我使用凭证的其中一个类可以采用SecureString,而且,总是很好的关注你可以节省一些人的努力.这让我想知道:
是否可以保存加密的SecureString,以便我可以将敏感数据保存到文件中并在其他地方打开?
您有什么想法,Stack Overflow?
唉,我的程序在某个地方有内存泄漏,但如果我知道它是什么,我会被诅咒.
它的工作是读取一堆~2MB的文件,进行一些解析和字符串替换,然后以各种格式输出它们.当然,这意味着很多字符串,因此进行内存跟踪表明我有很多字符串,这正是我所期望的.程序的结构是一系列类(每个都在自己的线程中,因为我是一个白痴),它们作用于代表内存中每个文件的对象.(每个对象都有一个输入队列,两端都使用锁.虽然这意味着我可以并行运行这个简单的处理,但这也意味着我有多个2MB对象位于内存中.)每个对象的结构都是由一个模式对象定义的. .
我的处理类在完成处理时引发事件,并传递对包含所有字符串的大对象的引用,以将其添加到下一个处理对象的队列中.使用函数调用替换事件以添加到队列不会阻止泄漏.其中一种输出格式要求我使用非托管对象.在类上实现Dispose()不会阻止泄漏.我已使用索引名称替换了对架构对象的所有引用.没有骰子.我不知道是什么导致它,不知道在哪里看.内存跟踪没有帮助,因为我看到的是一堆字符串正在创建,我没有看到引用在内存中的位置.
在这一点上,我们几乎要放弃并回滚,但我有一个病态的需要,确切地知道我是如何弄乱它的.我知道Stack Overflow无法完全梳理我的代码,但您可以建议哪些策略来跟踪此泄漏情况?我可能会在我自己的时间里这样做,所以任何方法都是可行的.
我有一个DataTable,它有一个名为[Invalid]的布尔列.我需要将此数据除以此无效列 - 有效行可以编辑,无效行不能.我原来的计划是使用两个BindingSources并设置Filter属性([无效] ="假",例如),发挥了送到我的手上,因为我有两个DataGridViews,所以我需要两个BindingSources反正.
这不起作用:BindingSources设置与DataTable关联的Filter属性,因此两个BindingSource都保存相同的数据.我将不得不从数据库中取两次,或者我可以用我拥有的对象做我想做的事情吗?
我正在尝试在运行时创建一个类的实例.我正在尝试创建的类都继承自基类ConfigMgrObj,并且被命名为ConfigMgr_xxxxxxeg ConfigMgr_Collection.它们都采用一个特殊的对象,我正在调用oController和一个字符串作为参数.
这是我用来做它的行,其中ClassToGet是一个包含类名称的字符串,例如ConfigMgr_Collection.
object oNewObject = System.Activator.CreateInstance(null, "StackOverflowNamespace." + ClassToGet, new object[] { oController, ClassToGet });
Run Code Online (Sandbox Code Playgroud)
这会引发TypeLoadException异常.怎么了?
我有一个ListView,有时我需要放入10000个项目.ListViews并不能很好地处理这个问题,并且他们在对项目进行排序并绘制它们时会锁定几秒钟.如果单独添加项目,则更糟糕的是,锁定将近一分钟.
为了解决这个问题,我想在我需要显示它之前尝试填充ListView,但不幸的是它还有其他想法.它只在我打开包含ListView的面板时才开始绘图,使程序挂起几秒钟.
关于如何消除这种延迟的任何想法?或者是否有另一个相对容易使用的组件,可以更好地显示大量数据?
c# ×5
.net ×4
database ×1
dll ×1
events ×1
exception ×1
inheritance ×1
linker ×1
listview ×1
memory-leaks ×1
merge ×1
reflection ×1
securestring ×1