草庐IT

c# - 测试使用 HttpContext.Current.Request.Files 的 Web API 方法?

我正在尝试为使用HttpContext.Current.Request.Files的WebAPI方法编写测试,经过详尽的搜索和实验后,我无法弄清楚如何模拟它。正在测试的方法如下所示:[HttpPost]publicHttpResponseMessagePost(){varrequestFiles=HttpContext.Current.Request.Files;varfile=requestFiles.Get(0);//dosomeotherstuff...}我意识到有otherquestionssimilartothis,但他们没有解决这个具体情况。如果我尝试模拟上下文,我会遇到H

c# - HttpContext.Current.Request.UserHostAddress 为空

在我的开发机器中HttpContext.Current.Request.UserHostAddress为空。为什么?我怎样才能打开它?如果是代理客户端,如何获取Ips列表?WCF服务与ASP.net4window7。谢谢 最佳答案 为避免此问题,您可以解析最后输入IP的HTTP_X_FORWARDED_FOR。ip=Request.ServerVariables["HTTP_X_FORWARDED_FOR"];if(!string.IsNullOrEmpty(ip)){string[]ipRange=ip.Split(',');in

c# - "The breakpoint will not currently be hit. A copy of file was found in dll file, but the current source code is different"

我不断收到此错误消息,提示存在.cs文件的副本,因此不会命中断点。我尝试过清理解决方案、重建、删除obj和bin文件夹中的.pdb文件、关闭VS并重新启动它、重新启动整个机器(这是Windows!有时最复杂、无法解释的问题会像这样解决:\)知道我还能尝试什么吗?这是VS2015上的.net项目 最佳答案 我发现了问题,原来IIS配置为使用我备份文件夹中项目的不同副本。这听起来很傻,但如果有人有类似的问题,我会保留这个问题。 关于c#-"Thebreakpointwillnotcurren

c# - 使用 Dijkstra 算法寻找最短路线

我需要找到图的2个顶点之间的最短路线。我有一个矩阵,其中包含所有权重。我该怎么做?目前,我有以下代码:privateint[]Dijkstra(intstart,intend){bool[]done=newbool[8];int[]parent=newint[8];for(inti=0;i它有效,但是,但是我不知道如何让它找到例如1和3之间的最短路线,并返回1=>4=>2=>3之类的路线。提前致谢。 最佳答案 Djikstra算法使用父数组来跟踪从开始到结束的最短路径。您将从parent[end]开始并跟随数组的条目,直到您回到起点

c# - 使用 TPL 的 Parallel.ForEach 时跟踪进度

跟踪以下进度的最佳方式是什么longtotal=Products.LongCount();longcurrent=0;doubleProgress=0.0;Parallel.ForEach(Products,product=>{try{varprice=GetPrice(SystemAccount,product);SavePrice(product,price);}finally{Interlocked.Decrement(refthis.current);}});我想将进度变量从0.0更新到1.0(当前/总计),但我不想使用任何会对并行性产生不利影响的东西。

c# - 异步任务中的 HttpContext.Current null

我有一个使用存储库的方法(userRepo):publicoverrideTaskCreateLocalUserAsync(IUseruser,stringpassword,CancellationTokencancellationToken){vartask=newTask(()=>{TUserEntitynewUser=newTUserEntity{Id=user.Id,UserName=user.UserName,Password=password};userRepo.Save(newUser).Flush();returnnewIdentityResult(true);},ca

c# - HttpContext.Current.Cache 是线程安全的吗?

请检查下面的代码:objDDLTable=HttpContext.Current.Cache["TestSet"]asHashtable;if(objDDLTable==null){objDDLTable=newHashtable();arrDDLItems=GetDropDownList("testDropDown");objDDLTable.Add("testDropDown",arrDDLItems);HttpContext.Current.Cache["TestSet"]=objDDLTable;}elseif(objDDLTable!=null&&!objDDLTable.C

c# - 使用最小起订量模拟 HttpContext.Current.Server.MapPath?

我正在对我的家庭Controller进行单元测试。在我添加保存图像的新功能之前,此测试运行良好。导致问题的方法如下所示。publicstaticvoidSaveStarCarCAPImage(intcapID){byte[]capBinary=Motorpoint2011Data.RetrieveCapImageData(capID);if(capBinary!=null){MemoryStreamioStream=newMemoryStream();ioStream=newMemoryStream(capBinary);//savethememorystreamasanimage//

c# - 如何防止 System.Timers.Timer 在线程池上排队执行?

标准System.Timers.Timer行为存在问题。计时器以一定间隔引发Elapsed事件。但是当Elapsed事件处理程序中的执行时间超过计时器间隔时,线程池开始排队处理事件。这是我的问题。这是因为我使用Elapsed事件处理程序从数据库中获取一些数据并对其进行处理,最后将结果保存回数据库。但是数据处理应该只提供一次。那么,有没有一种方法可以防止对System.Timers.Timer的经过事件进行排队。作为此问题的说明,您可以考虑下一个测试程序:publicclassEntryPoint{privatestaticvoidTimeProc(objectstate,Elapsed

c# - 使用 IEnumerator 遍历列表

假设我有一个员工实例列表,employeeList.我可以像这样遍历它们:IEnumeratorenumerator=employeeList.GetEnumerator();while(enumerator.MoveNext()){Console.Write(enumerator.Current+"");}我有三个问题:我对枚举器的工作原理有一个大概的了解,就像C++中的迭代器一样。但我不明白MoveNext()方法(如C++中的itr++),因为该方法首先检查条件(是否在最后一个元素中)。假设我们使用enumerator.Current访问第一个元素:我认为它实际上已经“移动”到列