草庐IT

避免全表扫描

全部标签

c# - 如何避免动态加载已使用反射加载的程序集?

我在循环中使用Assembly.LoadFile(assemblyFilePath)加载程序集,如果程序集已经加载过一次,我想避免调用Assembly.LoadFile。我是否应该担心为已经加载的DLL重复调用Assembly.LoadFile?谢谢。 最佳答案 不,您不需要担心,因为如果程序集已经加载,则不会再次加载如果您调用Assembly.LoadFile(),那么您可以多次加载同一个程序集,但前提是您每次都从不同的路径加载程序集。您可以使用Assembly.Load()这将只加载一次程序集。您还可以使用在当前应用程序域中查找

c# - 如何避免 "Response.Redirect cannot be called in a Page callback"

我正在清理一些遗留框架代码,其中很大一部分只是通过异常编码。没有检查任何值以查看它们是否为空,因此会抛出和捕获大量异常。我已经清理了其中的大部分,但是,有一些错误/登录/安全相关的框架方法正在执行Response.Redirect,现在我们正在使用ajax,我们得到了很多"不能在页面回调中调用Response.Redirect。”我想尽可能避免这种情况。有没有办法以编程方式避免此异常?我正在寻找类似的东西if(Request.CanRedirect)Request.Redirect("url");请注意,Server.Transfer也会发生这种情况,因此我希望能够检查我是否能够执行R

c# - 如何在我的 C# 程序中获取由命令行扫描程序设置的 "ERRORLEVEL"变量?

在我的网站上,我想对所有上传的文件进行病毒检查,然后再将它们保存到我的数据库中。因此,我将该文件保存到本地目录,然后从我的C#程序中启动命令行扫描程序进程。这是我使用的代码:stringpathToScannerProgram=Path.Combine(virusCheckFolder,"scan.exe");ProcessStartInfostartInfo=newProcessStartInfo();startInfo.FileName=pathToScannerProgram;startInfo.Arguments=String.Format("\"{0}\"/FAM/DAM",

c# - 什么是适用于 2D 点结构的 `GetHashCode()` 算法(避免冲突)

考虑以下代码:structVec2:IEquatable{doubleX,Y;publicboolEquals(Vec2other){returnX.Equals(other.X)&&Y.Equals(other.Y);}publicoverrideboolEquals(objectobj){if(objisVec2){returnEquals((Vec2)obj);}returnfalse;}//thiswillreturnthesamevaluewhenX,YareswappedpublicoverrideintGetHashCode(){returnX.GetHashCode()

c# - 特定类类型的 Autofac 扫描程序集

我已经开始使用Autofac并想扫描一些DLL并获取Autofac以在其中注册一些类。我感兴趣的类都继承自PluginBase类,但下面的代码似乎没有注册它们。谁能帮忙?varassemblies=AppDomain.CurrentDomain.GetAssemblies();varbuilder=newContainerBuilder();builder.RegisterAssemblyTypes(assemblies).Where(t=>t.BaseType==typeof(PluginBase)).AsImplementedInterfaces().AsSelf();varcon

c# - 通过避免文本框验证来关闭 C# windows 窗体

这是一个winformC#问题。我有一个带有验证事件监听器的文本框,用于根据正则表达式验证文本框的内容。验证后,如果输入的值不正确,我将显示消息框并取消事件,以便鼠标光标移回具有不正确值的文本框。当我从该文本框移出到其他按钮/文本框时,这工作正常。但是,当我输入不正确的值并关闭表单(使用右上角的关闭按钮)时,它会验证文本框内容并抛出消息框并且表单不会在我取消事件时关闭。问题是,当我单击表单右上角的X按钮时,我不希望验证被触发,因为我无论如何都要关闭表单。我怎样才能做到这一点?我会尽快发布代码片段。 最佳答案 要使用验证处理程序,例如

c# - 使用 Entity Framework 和 LINQ 查询大型数据集时如何避免内存溢出

我有一个处理所有数据库方法的类,包括EntityFramework相关的东西。当需要数据时,其他类可能会调用此类中的方法,例如publicListGetData(intstart,intend);数据库正在使用LINQtoEF进行查询,然后调用类可以遍历数据。但由于其他类无法访问EF中的实体,我需要对查询执行“ToList()”操作,并将完整的数据集提取到内存中。如果这个集合非常大(10到100GB)会怎样?是否有一种更有效的迭代方式,同时仍然保持松散耦合? 最佳答案 在Entity框架中处理大型数据集的正确方法是:使用EFv4和P

c# - 什么更好/更快? try catch 或避免异常?

我想知道,在通用编程中什么更好或/和更快?避免异常还是等待异常?避免异常是:stringa=null;list=someMethod();if(list.Length>0){a=list[0];}if(a!=null)...或者trycatch异常...stringa=null;try{a=someMethod()[0];catch{}if(a!=null)... 最佳答案 性能并不是这里最相关的问题。问题是,两者中的哪一个会导致程序更具可读性/可维护性/可测试性。您可以稍后再担心性能。一般来说,不要使用异常来进行流量控制。它们实际

c# - 注册表扫描类型的结构图拦截

我有一个使用Structuremap的ASPMVC4应用程序。我正在尝试通过Structuremap拦截向我的应用程序添加日志记录。在注册表中,我扫描一个特定的程序集,以便使用默认约定注册它的所有类型:publicclassServicesRegistry:Registry{publicServicesRegistry(){Scan(x=>{x.AssemblyContainingType();x.WithDefaultConventions();});}}拦截器:publicclassLogInterceptor:IInterceptor{publicvoidIntercept(II

c# - 使用完成事件时如何避免意大利面条代码?

不知怎的,我不敢相信我是第一个遇到这个问题的人(我不想相信我是唯一一个愚蠢到不能直接看到解决方案的人),但我的搜索功能不是足够强大。我经常遇到这样一种情况,需要一个接一个地执行一些耗时的步骤。工作流程看起来像vardata=DataGetter.GetData();varprocessedData=DataProcessor.Process(data);varuserDecision=DialogService.AskUserAbout(processedData);//...我不想在每一步都阻塞UI,所以每个方法都会立即返回,并在完成后引发一个事件。现在欢闹接踵而至,因为上面的代码块