Questions tagged «.net»

请勿使用有关.NET Core的问题,而应使用[.net-core]。.NET框架是主要为Microsoft Windows操作系统设计的软件框架。它包括基类库,公共语言运行时(通常称为CLR),公共类型系统(通常称为CTS)和动态语言运行时的实现。它支持多种编程语言,包括C#,VB.NET,F#和C ++ / CLI。


11
在C#中将大文件读入字节数组的最佳方法?
我有一个Web服务器,它将大的二进制文件(几兆字节)读入字节数组。服务器可能同时读取多个文件(不同的页面请求),因此我正在寻找最优化的方式来执行此操作,而又不会给CPU带来太多负担。下面的代码足够好吗? public byte[] FileToByteArray(string fileName) { byte[] buff = null; FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read); BinaryReader br = new BinaryReader(fs); long numBytes = new FileInfo(fileName).Length; buff = br.ReadBytes((int) numBytes); return buff; }

15
枚举“继承”
我在低级名称空间中有一个枚举。我想在“继承”低级枚举的中级命名空间中提供一个类或枚举。 namespace low { public enum base { x, y, z } } namespace mid { public enum consume : low.base { } } 我希望这是可能的,或者希望可以使用某种类来代替枚举消耗,这将为枚举提供抽象层,但仍允许该类的实例访问枚举。 有什么想法吗? 编辑:我没有将其转换为类中的const的原因之一是我必须使用的服务需要低级枚举。我得到了WSDL和XSD,它们将结构定义为枚举。该服务无法更改。
391 c#  .net  enums 



9
C#获取%AppData%的路径
C#2008 SP1 我正在使用以下代码: dt.ReadXml("%AppData%\\DateLinks.xml"); 但是,我遇到一个异常,该异常指向我的应用程序从以下位置运行的位置: 找不到路径“ D:\ Projects \ SubVersionProjects \ CatDialer \ bin \ Debug \%AppData%\ DateLinks.xml”的一部分。 我以为%AppData%应该找到相对路径。当我去的时候,Start|Run|%AppData%Windows资源管理器会将我带到该目录。 由于每台客户端计算机上的用户都不相同,因此无法输入完整路径。
387 c#  .net  path 

15
异步等待Task <T>超时完成
我想等待Task &lt;T&gt;完成一些特殊规则:如果X毫秒后仍未完成,我想向用户显示一条消息。如果它在Y毫秒后仍未完成,我想自动请求cancel。 我可以使用Task.ContinueWith异步地等待任务完成(即,安排在任务完成时执行的动作),但这不允许指定超时。我可以使用Task.Wait来同步等待任务完成并超时,但这会阻塞我的线程。如何异步等待任务完成并超时?


12
哪些.NET依赖注入框架值得研究?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 哪些C#/。NET依赖注入框架值得研究?您能说出它们的复杂性和速度。

14
如何在Linq中执行SQL Like%?
我有一个试图转换为Linq的SQL过程: SELECT O.Id, O.Name as Organization FROM Organizations O JOIN OrganizationsHierarchy OH ON O.Id=OH.OrganizationsId where OH.Hierarchy like '%/12/%' 我最关心的行是: where OH.Hierarchy like '%/12/%' 我有一列存储例如/ 1/3/12 /之类的层次结构,因此我只使用%/ 12 /%进行搜索。 我的问题是,Linq或.NET与使用百分号等效吗?

7
.NET中是否存在僵尸……?
我正在与队友讨论锁定.NET的问题。他是一个非常聪明的人,在低级和高级编程方面都有广泛的背景,但是他在低级编程方面的经验远远超过了我。无论如何,他认为应该在可能承受重负载的关键系统上避免.NET锁定,以免“僵尸线程”崩溃的可能性很小。我通常使用锁定,但我不知道“僵尸线程”是什么,所以我问。我从他的解释中得到的印象是,僵尸线程是已终止但仍保留了某些资源的线程。他举了一个关于僵尸线程如何破坏系统的示例,该示例是线程在锁定某个对象后开始执行某些过程,然后在可以释放锁之前终止。这种情况有可能使系统崩溃,因为最终尝试执行该方法将导致线程全部等待访问永远不会返回的对象,因为使用锁定对象的线程已死。 我想我明白了要点,但是如果我不在基地,请告诉我。这个概念对我来说很有意义。我并不完全相信这是.NET中可能发生的真实情况。我以前从未听说过“僵尸”,但我确实认识到在较低级别进行过深入研究的程序员往往对计算基础(例如线程)有更深的了解。我确实确实看到了锁定的价值,而且我看到许多世界一流的程序员都在利用锁定。我也没有能力自己评估这一点,因为我知道该lock(obj)语句实际上仅是以下方面的语法糖: bool lockWasTaken = false; var temp = obj; try { Monitor.Enter(temp, ref lockWasTaken); { body } } finally { if (lockWasTaken) Monitor.Exit(temp); } 并且因为Monitor.Enter和Monitor.Exit被标记extern。可以想象.NET进行了某种处理,以保护线程免于暴露于可能造成这种影响的系统组件,但这纯粹是推测性的,并且可能基于我从未听说过“僵尸线程”的事实。之前。因此,我希望可以在这里获得一些反馈: 是否有比我在此解释的“僵尸线程”更清晰的定义? 僵尸线程可以出现在.NET上吗?(为什么/为什么不呢?) 如果适用,如何在.NET中强制创建僵尸线程? 如果适用,如何在不冒险使用.NET中僵尸线程的情况下利用锁定? 更新资料 两年多前,我问了这个问题。今天,这件事发生了:

5
为什么需要JsonRequestBehavior?
为什么Json Request Behavior需要? 如果我想将HttpGet请求限制为我的操作,则可以使用[HttpPost]属性装饰该操作 例: [HttpPost] public JsonResult Foo() { return Json("Secrets"); } // Instead of: public JsonResult Foo() { return Json("Secrets", JsonRequestBehavior.AllowGet); } 为什么还[HttpPost]不够? 为什么框架会用我们拥有的JsonRequestBehavior.AllowGet所有东西“困扰”我们JsonResult。如果我想拒绝获取请求,则添加HttpPost属性。

30
无法使用Directory.Delete(path,true)删除目录
我正在使用.NET 3.5,尝试使用以下命令递归删除目录: Directory.Delete(myPath, true); 我的理解是,如果文件正在使用中或存在权限问题,则应抛出此错误,否则应删除目录及其所有内容。 但是,我偶尔会得到以下信息: System.IO.IOException: The directory is not empty. at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) at System.IO.Directory.DeleteHelper(String fullPath, String userPath, Boolean recursive) at System.IO.Directory.Delete(String fullPath, String userPath, Boolean recursive) ... 有时会抛出该方法,我并不感到惊讶,但是当递归为true时,我会收到此特定消息感到惊讶。(我知道目录不为空。) 我会看到这个而不是AccessViolationException吗?
383 c#  .net  exception  io 

20
检查路径是文件还是目录的更好方法?
我正在处理TreeView目录和文件。用户可以选择文件或目录,然后对其进行操作。这就要求我有一种根据用户的选择执行不同动作的方法。 目前,我正在执行以下操作来确定路径是文件还是目录: bool bIsFile = false; bool bIsDirectory = false; try { string[] subfolders = Directory.GetDirectories(strFilePath); bIsDirectory = true; bIsFile = false; } catch(System.IO.IOException) { bIsFolder = false; bIsFile = true; } 我不禁感到有更好的方法可以做到这一点!我希望找到一种标准的.NET方法来处理此问题,但我一直未能做到这一点。是否存在这种方法,如果不存在,那么确定路径是文件还是目录的最直接方法是什么?
382 c#  .net  file  path  directory 

13
在C#中使用Finalize / Dispose方法
C#2008 我已经为此工作了一段时间,但我仍然对在代码中使用finalize和dispose方法感到困惑。我的问题如下: 我知道在处理非托管资源时我们只需要一个终结器即可。但是,如果存在调用非托管资源的托管资源,是否仍需要实现终结器? 但是,如果我开发的类不直接或间接使用任何非托管资源,是否应该实现,IDisposable以允许该类的客户端使用“ using语句”? 实现IDisposable只是为了使您的类的客户端能够使用using语句是否可行? using(myClass objClass = new myClass()) { // Do stuff here } 我在下面开发了这个简单的代码来演示Finalize / dispose的使用: public class NoGateway : IDisposable { private WebClient wc = null; public NoGateway() { wc = new WebClient(); wc.DownloadStringCompleted += wc_DownloadStringCompleted; } // Start the Async call to find if …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.