Questions tagged «c#»

C#(发音为“ See Sharp”)是由Microsoft开发的一种高级,静态类型的多范例编程语言。C#代码通常针对Microsoft的.NET系列工具和运行时,其中包括.NET Framework,.NET Core和Xamarin。使用此标记可解决有关用C#或C#正式规范编写的代码的问题。

30
在C#中使用var关键字
已锁定。该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 与同事讨论了在C#3中使用'var'关键字后,我想知道人们对于通过var进行类型推断的适当用法有何看法? 例如,我宁愿在可疑的情况下懒惰地使用var,例如: foreach(var item in someList) { // ... } // Type of 'item' not clear. var something = someObject.SomeProperty; // Type of 'something' not clear. var something = someMethod(); // Type of 'something' not clear. var的更多合法用法如下: var l = new List<string>(); // Obvious what l will be. var …
406 c#  type-inference  var 


30
如何截断.NET字符串?
我想截断一个字符串,使其长度不超过给定值。我正在写数据库表,并希望确保所写的值满足列数据类型的约束。 例如,如果我可以编写以下代码,那就太好了: string NormalizeLength(string value, int maxLength) { return value.Substring(0, maxLength); } 不幸的是,这引起了一个异常,因为maxLength通常超出了string的边界value。当然,我可以编写类似以下的函数,但我希望这样的东西已经存在。 string NormalizeLength(string value, int maxLength) { return value.Length <= maxLength ? value : value.Substring(0, maxLength); } 执行此任务的难以捉摸的API在哪里?有一个吗?
406 c#  .net  string  truncate 

10
普通的旧CLR对象与数据传输对象
Наэтотвопросестьответына 堆栈溢出нарусском:НаглядныйпримерразличияDTO,POCO(POJO)и值对象 POCO =普通旧CLR(或更好:Class)对象 DTO =数据传输对象 在这篇文章中有一个区别,但是坦率地说,我读过的大多数博客都以定义DTO的方式描述了POCO:DTO是用于在应用程序各层之间移动数据的简单数据容器。 POCO和DTO是同一件事吗?
405 c#  .net  poco  dto 


3
.NET JIT潜在错误?
当在Visual Studio中运行发行版并在Visual Studio之外运行发行版时,以下代码给出不同的输出。我使用的是Visual Studio 2008,目标是.NET 3.5。我也尝试过.NET 3.5 SP1。 在Visual Studio外部运行时,应该启动JIT。或者(a)我缺少的C#发生了一些微妙的变化,或者(b)JIT实际上是错误的。我怀疑JIT会出错,但是我没有其他机会... 在Visual Studio中运行时的输出: 0 0, 0 1, 1 0, 1 1, 在Visual Studio外部运行发行版时的输出: 0 2, 0 2, 1 2, 1 2, 是什么原因? using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Test { struct IntVec { public int x; public int …
404 c#  jit 

26
WCF客户端“使用”块问题的最佳解决方法是什么?
我喜欢在一个using块中实例化WCF服务客户端,因为这几乎是使用实现资源的标准方法IDisposable: using (var client = new SomeWCFServiceClient()) { //Do something with the client } 但是,正如此MSDN文章中所述,将WCF客户端包装在一个using块中可能会掩盖导致客户端处于故障状态(如超时或通信问题)的任何错误。长话短说,当调用Dispose()时,客户端的Close()方法将触发,但由于处于故障状态而将引发错误。然后,原始异常被第二个异常掩盖。不好。 MSDN文章中建议的解决方法是完全避免使用using块,而是实例化客户端并使用如下所示的客户端: try { ... client.Close(); } catch (CommunicationException e) { ... client.Abort(); } catch (TimeoutException e) { ... client.Abort(); } catch (Exception e) { ... client.Abort(); throw; } 与using块相比,我认为这很丑。每次需要客户时,都会编写很多代码。 幸运的是,我发现了其他一些解决方法,例如在IServiceOriented上的解决方法。您从开始: public delegate void UseServiceDelegate<T>(T proxy); …
404 c#  vb.net  wcf  using  wcf-client 

12
检测到ASP.NET设置不适用于集成托管管道模式
我安装了DotNetOpenAuth SDK-3.4.5.10201.vsix,但无法正常运行。它在本地工作(当我以localhost运行时),但是当我尝试发布它时却无法正常工作。 我收到的IIS错误消息是 错误摘要 HTTP错误500.22-内部服务器错误 检测到ASP.NET设置不适用于集成托管管道模式。 和 Module ConfigurationValidationModule Notification BeginRequest Handler StaticFile Error Code 0x80070032 然后有一些解决问题的建议: 您可以尝试的事情: 将配置迁移到该 system.webServer/modules部分。您可以手动执行此操作,也可以通过在命令行中使用AppCmd进行操作-例如, %SystemRoot%\system32\inetsrv\appcmd migrate config "Default Web Site/"。使用AppCmd迁移应用程序将使其能够在集成模式下工作,并继续在经典模式和IIS的早期版本上工作。 如果确定可以忽略此错误,可以将其设置system.webServer/validation@validateIntegratedModeConfiguration 为false 来禁用它 。 或者,将应用程序切换到经典模式应用程序池-例如, %SystemRoot%\system32\inetsrv\appcmd set app "Default Web Site/" /applicationPool:"Classic .NET AppPool"。仅在无法迁移应用程序时才这样做。 (将“默认网站”和“经典.NET AppPool”设置为您的应用程序路径和应用程序池名称) 但是问题在于我没有访问ISS服务器的权限,因为我不是它的所有者。有什么办法解决这个问题?
401 c#  asp.net  iis  .net-4.0  iis-7.5 


9
每个Web请求一个DbContext ...为什么?
我阅读了许多文章,这些文章解释了如何设置实体框架,DbContext以便使用各种DI框架为每个HTTP Web请求创建和使用一个实体框架。 为什么这首先是个好主意?通过使用这种方法,您可以获得什么优势?在某些情况下这是个好主意吗?使用DbContext每个存储库方法调用实例化s 时,您是否可以使用该技术做一些事情?



6
如何保护ASP.NET Web API [关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 3年前关闭。 我想使用ASP.NET Web API 构建RESTful Web服务,第三方开发人员将使用该服务访问我的应用程序的数据。 我已经阅读了很多有关OAuth的文章,这似乎是标准的,但是要找到一个很好的示例来说明其工作原理(实际上是有效的!)的文档似乎非常困难(特别是对于使用OAuth的新手)。 是否有一个实际构建和工作的示例,并显示了如何实现此示例? 我下载了许多示例: DotNetOAuth-从新手角度看文档是没有希望的 Thinktecture-无法构建 我也看过博客,提出了一个基于令牌的简单方案(像这样)-好像是在重新发明轮子,但是这样做的确在概念上相当简单。 在SO上似乎有很多类似问题,但没有好的答案。 每个人在这个空间里做什么?


4
如何为当前用户获取临时文件夹
目前,我正在使用以下功能来获取当前用户的临时文件夹路径: string tempPath = System.IO.Path.GetTempPath(); 在某些计算机上,它为我提供了当前用户的临时文件夹路径,例如: C:\ Documents and Settings \ administrator \ Local Settings \ Temp \ 在某些计算机上,它为我提供了系统临时文件夹路径,例如: C:\ Windows \ TEMP MSDN文档还说,上述API返回当前系统的临时文件夹。 是否有其他可用的API可以给我当前用户的临时文件夹路径,如下所示: C:\ Documents and Settings \ administrator \ Local Settings \ Temp \

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.