Questions tagged «c#»

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

6
我应该将ILogger,ILogger <T>,ILoggerFactory或ILoggerProvider用于库吗?
这可能与将ILogger或ILoggerFactory传递给AspNet Core中的构造函数有关吗?,但这是专门针对库设计的,而不是有关使用这些库的实际应用程序如何实现其日志记录的。 我正在编写一个将通过Nuget安装的.net Standard 2.0库,并且为了允许使用该库的人们获得一些调试信息,我依赖于Microsoft.Extensions.Logging.Abstractions来允许注入标准化的Logger。 但是,我看到了多个接口,并且网络上的示例代码有时ILoggerFactory会在类的ctor中使用并创建一个记录器。还有ILoggerProvider一个看起来像是Factory的只读版本,但是实现可能会也可能不会实现这两个接口,因此我不得不选择。(工厂似乎比提供程序更常见)。 我见过的某些代码使用非泛型ILogger接口,甚至可能共享同一记录器的一个实例,而某些代码采用了一个ILogger&lt;T&gt;ctor,并期望DI容器支持开放的泛型类型或ILogger&lt;T&gt;我的库中每个变体的显式注册。用途。 现在,我确实认为这ILogger&lt;T&gt;是正确的方法,也许是不采用该参数而仅通过Null Logger的ctor。这样,如果不需要日志记录,则不使用任何日志记录。但是,某些DI容器会选择最大的ctor,因此无论如何都会失败。 我很好奇我在这里应该做的事情,以便为用户带来最少的麻烦,同时在需要时仍允许适当的日志记录支持。

15
如何编写单元测试的输出?
我的单元中的任何调用都会在调试时忽略其中的一个,Debug.Write(line)或者Console.Write(Line)只是跳过而不会打印输出。从我正在使用的类中调用这些函数工作正常。 我知道单元测试是自动化的,但是我仍然希望能够从单元测试中输出消息。


6
具有键“ XXX”的ViewData项的类型为“ System.Int32”,但必须为类型“ IEnumerable <SelectListItem>”
我有以下视图模型 public class ProjectVM { .... [Display(Name = "Category")] [Required(ErrorMessage = "Please select a category")] public int CategoryID { get; set; } public IEnumerable&lt;SelectListItem&gt; CategoryList { get; set; } .... } 和以下控制器方法来创建新项目并分配一个 Category public ActionResult Create() { ProjectVM model = new ProjectVM { CategoryList = new SelectList(db.Categories, "ID", "Name") } …
113 c#  asp.net-mvc 

30
IIS错误502.5上的ASP.NET Core 1.0
我刚刚将服务器(Windows 2012R2).Net Core 1.0 RTM从上一个更新为Windows Hosting Pack .Net Core 1.0 RC2。我的应用程序可以在PC上正常运行,但服务器始终显示: HTTP Error 502.5 - Process Failure Common causes of this issue: The application process failed to start The application process started but then stopped The application process started but failed to listen on the configured port 它以前与RC2版本一起使用。不知道会出什么问题。 这就是事件查看器说的所有内容: Failed …

10
排序自定义班级列表<T>
我想用该date属性对列表进行排序。 这是我的自定义类: using System; using System.Collections.Generic; using System.Linq; using System.Web; namespace Test.Web { public class cTag { public int id { get; set; } public int regnumber { get; set; } public string date { get; set; } } } 这是List我要排序的: List&lt;cTag&gt; Week = new List&lt;cTag&gt;(); 我想要做的是按datecTag类的属性对列表进行排序。日期格式为:dd.MM.yyyy。 我读了一些有关该IComparable接口的内容,但不知道如何使用它。
112 c#  sorting 

5
序列不包含匹配元素
我有一个asp.net应用程序,其中使用linq进行数据操作。运行时,出现异常“序列不包含匹配的元素”。 if (_lstAcl.Documents.Count &gt; 0) { for (i = 0; i &lt;= _lstAcl.Documents.Count - 1; i++) { string id = _lstAcl.Documents[i].ID.ToString(); var documentRow = _dsACL.Documents.First(o =&gt; o.ID == id); if (documentRow !=null) { _lstAcl.Documents[i].Read = documentRow.Read; _lstAcl.Documents[i].ReadRule = documentRow.ReadRule; _lstAcl.Documents[i].Create= documentRow.Create; _lstAcl.Documents[i].CreateRule = documentRow.CreateRule; _lstAcl.Documents[i].Update = documentRow.Update; _lstAcl.Documents[i].UpdateRule = documentRow.UpdateRule; …
112 c#  linq  exception 

5
C#中的System.Threading.Timer似乎不起作用。每三秒钟运行一次
我有一个计时器对象。我希望它每分钟运行一次。具体来说,它应运行一个OnCallBack方法,并在OnCallBack方法运行时变为非活动状态。一旦一个OnCallBack方法完成,它(一个OnCallBack)重新启动的定时器。 这是我现在拥有的: private static Timer timer; private static void Main() { timer = new Timer(_ =&gt; OnCallBack(), null, 0, 1000 * 10); //every 10 seconds Console.ReadLine(); } private static void OnCallBack() { timer.Change(Timeout.Infinite, Timeout.Infinite); //stops the timer Thread.Sleep(3000); //doing some long operation timer.Change(0, 1000 * 10); //restarts the timer } …
112 c#  .net  timer 

7
null + true字符串如何?
由于true不是字符串类型,字符串如何null + true? string s = true; //Cannot implicitly convert type 'bool' to 'string' bool b = null + true; //Cannot implicitly convert type 'string' to 'bool' 这背后的原因是什么?
112 c#  .net  string  null  types 

14
捕捉到“超出最大请求长度”
我正在编写一个上载函数,并且遇到文件大于httpRuntimeweb.config中指定的最大大小(最大大小设置为5120)时,捕获“ System.Web.HttpException:超出最大请求长度”的问题。我正在使用一个简单&lt;input&gt;的文件。 问题是该异常在上载按钮的单击事件之前引发,并且该异常在我的代码运行之前发生。那么,如何捕获和处理异常? 编辑:异常立即引发,所以我很确定这不是由于连接速度慢而引起的超时问题。


10
在任何情况下,最好使用普通的旧Thread对象而不使用较新的结构之一吗?
我在博客文章和SO上看到了很多人,他们避免或建议不要Thread在最新版本的C#中使用该类(我的意思是当然是4.0+,加上Task&朋友)。甚至在以前,就存在这样的争论:在许多情况下,ThreadPool该类可以替换普通的旧线程的功能。 另外,其他专用机制进一步使Thread该类不再那么吸引人,例如Timers替换了丑陋的Thread+ Sleep组合,而对于GUI我们拥有BackgroundWorker,等等。 但是,Thread对于某些人(包括我自己)来说,这似乎仍然是一个非常熟悉的概念,这些人在遇到涉及某种并行执行的任务时,会直接跳到使用旧的Thread类。我最近一直在想是否应该修改我的方式。 所以我的问题是,在任何情况下有必要使用普通的旧Thread对象代替上述构造之一是有必要的还是有用的?
112 c#  .net  multithreading 

5
Entity Framework Code First是否支持存储过程?
我已经看过EF Code First的一些演示,还没有看到EFCF如何与存储过程一起工作。 如何声明将使用某些sp的方法?是否可以将实体传递给调用sp的方法,而无需手动将实体属性映射到sp参数? 另外,如果我更改模型会怎样?从模型重新创建表格时,它会掉落我的sp吗?那触发器呢? 如果不支持这些功能,将来是否有计划支持它们?

2
编写MSMQ示例应用程序所需的最低要求
我已经进行了一个多小时的研究,并找到了许多有关如何在C#中使用MSMQ的示例,甚至是关于Message Queue的一本书的完整一章...但是要进行快速测试,我需要介绍的是这种情况,甚至没有以一种完美的方式进行快速演示: “应用程序A”:将消息写入消息队列。(应用程序A是C#Windows服务)现在打开“应用程序B”(它是C#winForms应用程序),然后检查MSMQ,我看到哦,我有新消息。 就这样...我需要一个简单的演示。 有人可以帮我提供代码示例吗?非常感激。
112 c#  msmq 

5
如果不包含歧义,为什么要添加一个方法会导致模棱两可的调用
我有这个课 public class Overloaded { public void ComplexOverloadResolution(params string[] something) { Console.WriteLine("Normal Winner"); } public void ComplexOverloadResolution&lt;M&gt;(M something) { Console.WriteLine("Confused"); } } 如果我这样称呼它: var blah = new Overloaded(); blah.ComplexOverloadResolution("Which wins?"); 它写入Normal Winner控制台。 但是,如果我添加另一种方法: public void ComplexOverloadResolution(string something, object somethingElse = null) { Console.WriteLine("Added Later"); } 我收到以下错误: 下列方法或属性之间的调用不明确:&gt;' Overloaded.ComplexOverloadResolution(params string[])'和' Overloaded.ComplexOverloadResolution&lt;string&gt;(string)' …

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.