Questions tagged «c#»

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

2
模拟HttpContext来对.NET核心MVC控制器进行单元测试?
我在单元测试的控制器中有一个函数,该函数期望http请求的标头中的值。我无法初始化HttpContext,因为它是只读的。 我的控制器函数期望“ device-id”的http请求标头值为 [TestMethod] public void TestValuesController() { ValuesController controller = new ValuesController(); //not valid controller.HttpContext is readonly //controller.HttpContext = new DefaultHttpContext(); var result = controller.Get(); Assert.AreEqual(result.Count(), 2); } 有没有使用第三方库的简单方法?


21
在System.ComponentModel默认值Attrbute中将DateTime属性的默认值设置为DateTime.Now
有谁知道如何使用System.ComponentModel DefaultValue属性为DateTime属性指定Default值? 例如,我尝试这样: [DefaultValue(typeof(DateTime),DateTime.Now.ToString("yyyy-MM-dd"))] public DateTime DateCreated { get; set; } 并且它期望该值是一个常量表达式。 这是在与ASP.NET动态数据一起使用的上下文中。我不想设置DateCreated列,而只是提供DateTime.Now(如果不存在)。我正在使用实体框架作为数据层 干杯, 安德鲁

8
如何摆脱Visual Studio中的命名规则冲突消息?
我刚刚安装了Visual Studio2017。打开现有网站时,会收到各种各样的警告消息,例如: IDE1006违反命名规则:这些单词必须以大写字母开头:swe_calc 在代码中,其定义为: [System.Runtime.InteropServices.DllImport("swedll32.dll")] public static extern Int32 swe_calc(double tjd, int ipl, Int32 iflag, IntPtr xx, IntPtr serr); 我的ASP.Net控件也会发生这种情况。作为DropDownList的示例: IDE1006违反命名规则:这些单词必须以大写字母开头:ddlMonth_SelectedIndexChanged 如何在Visual Studio中消除这些类型的警告?

7
如何在不锁定文本的情况下读取文本文件?
我有一个Windows服务将其日志以简单格式写入文本文件中。 现在,我将创建一个小型应用程序以读取服务的日志,并将现有日志和添加的日志显示为实时视图。 问题在于该服务锁定了文本文件以添加新行,同时查看器应用程序锁定了该文件以进行读取。 服务代码: void WriteInLog(string logFilePath, data) { File.AppendAllText(logFilePath, string.Format("{0} : {1}\r\n", DateTime.Now, data)); } 查看者代码: int index = 0; private void Form1_Load(object sender, EventArgs e) { try { using (StreamReader sr = new StreamReader(logFilePath)) { while (sr.Peek() >= 0) // reading the old data { AddLineToGrid(sr.ReadLine()); index++; } …
94 c#  file-io 

5
导致死锁的异步/等待示例
我遇到了一些使用c#的async/ await关键字进行异步编程的最佳实践(我是c#5.0的新手)。 给出的建议之一如下: 稳定性:了解您的同步上下文 ...某些同步上下文是不可重入的和单线程的。这意味着在给定时间只能在上下文中执行一个工作单元。Windows UI线程或ASP.NET请求上下文就是一个例子。在这些单线程同步上下文中,很容易使自己陷入僵局。如果您从单线程上下文中生成任务,然后在上下文中等待该任务,则您的等待代码可能会阻止后台任务。 public ActionResult ActionAsync() { // DEADLOCK: this blocks on the async task var data = GetDataAsync().Result; return View(data); } private async Task<string> GetDataAsync() { // a very simple async method var result = await MyWebService.GetDataAsync(); return result.ToString(); } 如果我自己剖析,则主线程会生成一个新线程MyWebService.GetDataAsync();,但是由于主线程在此等待,因此它将在中等待结果GetDataAsync().Result。同时,说数据准备好了。为什么主线程不继续其继续逻辑并从中返回字符串结果GetDataAsync()? 有人可以解释一下为什么上面的示例中出现死锁吗?我完全不知道问题是什么...

4
如何使用csproj多目标.NET Core类库?
当.NET Core仍使用该project.json格式时,您可以构建一个针对多个框架的类库(例如net451,netcoreapp1.0)。 现在,正式的项目格式正在csproj使用MSBuild,您如何指定多个目标框架?我试图寻找这个在VS2017的项目设置,但我能只针对从.NET框架的核心在单一框架(它甚至没有列出我的其他完整的.NET框架版本都已经安装) :


9
如何在C#应用程序中导入JsonConvert?
我创建了一个C#库项目。该项目将这一行归为一类: JsonConvert.SerializeObject(objectList); 我说错了 名称JsonConvert在当前上下文中不存在。 为了解决这个问题,我添加System.ServiceModel.Web.dll了参考资料,但没有运气。我该如何解决这个错误?
94 c#  json.net 


7
使用JObject即时创建JSON
对于我的一些单元测试,我希望能够建立特定的JSON值(在这种情况下为唱片集),可以将其用作被测系统的输入。 我有以下代码: var jsonObject = new JObject(); jsonObject.Add("Date", DateTime.Now); jsonObject.Add("Album", "Me Against The World"); jsonObject.Add("Year", 1995); jsonObject.Add("Artist", "2Pac"); 这可以正常工作,但是我从不真正喜欢“魔术字符串”语法,而是更喜欢像JavaScript中的expando-property语法: jsonObject.Date = DateTime.Now; jsonObject.Album = "Me Against The World"; jsonObject.Year = 1995; jsonObject.Artist = "2Pac";
94 c#  json  json.net 

7
尝试激活“ AuthController”时无法解析类型为“ Microsoft.AspNetCore.Identity.UserManager”的服务
我在登录控制器中收到此错误。 InvalidOperationException:尝试激活“ Automobile.Server.Controllers.AuthController”时,无法解析类型为“ Microsoft.AspNetCore.Identity.UserManager`1 [Automobile.Models.Account]”的服务。 这是Auth Controller构造函数: private SignInManager<Automobile.Models.Account> _signManager; private UserManager<Automobile.Models.Account> _userManager; public AuthController(UserManager<Models.Account> userManager, SignInManager<Automobile.Models.Account> signManager) { this._userManager = userManager; this._signManager = signManager; } 这是startup.cs中的ConfigureServices: public void ConfigureServices(IServiceCollection services) { // Add framework services. services.AddApplicationInsightsTelemetry(Configuration); services.Configure<AppConfig>(Configuration.GetSection("AppSettings")); //var provider = HttpContext.ApplicationServices; //var someService = provider.GetService(typeof(ISomeService)); services.AddDbContext<Providers.Database.EFProvider.DataContext>(options => options .UseSqlServer(Configuration.GetConnectionString("DefaultConnection"), …

2
Moq,SetupGet,模拟属性
我正在尝试模拟一个名为的类,该类UserInputEntity包含一个名为的属性ColumnNames(它确实包含其他属性,我只是将其简化为问题) namespace CsvImporter.Entity { public interface IUserInputEntity { List<String> ColumnNames { get; set; } } public class UserInputEntity : IUserInputEntity { public UserInputEntity(List<String> columnNameInputs) { ColumnNames = columnNameInputs; } public List<String> ColumnNames { get; set; } } } 我有一个主持人班: namespace CsvImporter.UserInterface { public interface IMainPresenterHelper { //... } public class …
94 c#  c#-4.0  properties  moq 

7
免费的NCrunch替代品[关闭]
关闭。此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗?更新问题,使其成为Stack Overflow 的主题。 5年前关闭。 改善这个问题 由于NCrunch离开了自由市场,所以我一直在寻找类似的工具来进行代码覆盖率标记以及像NCrunch这样的连续测试 编辑:我正在使用VS2012 更新: 我已经使用ContinuousTest已有一段时间了,可以,但是我认为在编写代码时缺少反馈。当我编写测试时,反馈是好的,但是当我中断测试(在编辑源代码时)时,它不会告诉我测试已中断(与NCrunch一样)。因此,如果有人知道其他工具,我仍然在听。

15
C ++ 11是否具有C#样式的属性?
在C#中,使用getter和setter的字段有一个不错的语法糖。此外,我喜欢自动执行的属性,这些属性使我可以编写 public Foo foo { get; private set; } 在C ++中,我必须编写 private: Foo foo; public: Foo getFoo() { return foo; } C ++ 11中是否有这样的概念,可以让我对此有所了解?
93 c#  c++  class  c++11 

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.