如何从C#方法返回Json对象

我正在尝试修复需要Json响应的ASP.NET WebAPI方法。 但是它会返回一个字符串。 最初它是在撤回XML格式,但我已将此行添加到App_Start \ WebApiConfig.cs中的mvc代码中,以便默认返回Json。 config.Formatters.Remove(config.Formatters.XmlFormatter); 我们使用NewtonSoft更新了c#方法如下: public string Get() { string userid = UrlUtil.getParam(this, “userid”, “”); string pwd = UrlUtil.getParam(this, “pwd”, “”); string resp = DynAggrClientAPI.openSession(userid, pwd); JsonSerializer ser = new JsonSerializer(); string jsonresp = JsonConvert.SerializeObject(resp); return resp; } resp var以字符串类型的forms返回: “{status:\”SUCCESS\”,data:[\”4eb97d2c6729df98206cf214874ac1757649839fe4e24c51d21d\”]}” 和jsonresp var看起来像这样: “\”{status:\\\”SUCCESS\\\”,data:[\\\”4eb97d2c6729df98206cf214874ac1757649839fe4e24c51d21d\\\”]}\”” 在Chrome的F12开发工具中,数据对象是: “”{status:\”SUCCESS\”,data:[\”4eb97d2c6729df98206cf214874ac1757649839fe4e24c51d21d\”]}”” 在Console工具中,angular.fromJson(data)的结果: “{status:”SUCCESS”,data:[“4eb97d2c6729df98206cf214874ac1757649839fe4e24c51d21d”]}” 我将不胜感激如何正确返回Json对象,而不是任何字符串类型。 谢谢。 短发 ————更新—————- […]

C#中的匿名方法是什么?

有人可以解释一下C#中的匿名方法(简单来说),并提供可能的例子

ASP.NET MVC – 填充下拉列表

我是ASP.NET MVC的新手。 我正在试图弄清楚如何从我的数据库中的值创建一个基本的下拉列表。 在ASP.NET Web表单中,我知道我可以加载下拉列表,如下所示: Page.aspx Page.aspx.cs void myDropDownList_Load(object sender, EventArgs e) { if (Page.IsPostBack == false) { List people = GetPeopleFromDatabase(); myDropDownList.DataSource = people; myDropDownList.DataBind(); } } 我如何在ASP.NET MVC中执行相同类型的操作? 谢谢!

从Generics 转换为特定子类

我有一个class级 public class MyClass where T : OneType { T MyObj { get; set; } public MyCLass(T obj) { } } public class SubClass: MyClass { } // snip for other similar class definition 其中, TwoType派生自OneType 。 现在,我有这个实用方法 public static MyClass Factory(T vd) where T : OneType { switch(vd.TypeName) { case Constant.TwoType return new SubClass((TwoType)vd); […]

unit testing.NET Standard 1.6库

我无法找到有关如何对.NET Standard 1.6类库(可以从.NET Core项目中引用)进行unit testing的最新文档。 这是我的project.json对我的库来说的样子: { “supports”: {}, “dependencies”: { “Microsoft.NETCore.Portable.Compatibility”: “1.0.1”, “NETStandard.Library”: “1.6.0”, “Portable.BouncyCastle”: “1.8.1.2” }, “frameworks”: { “netstandard1.6”: {} } } 现在剩下的任务是能够创建某种可以进行unit testing的项目。 目标是使用xUnit,因为这似乎是.NET Core团队正在推动的。 我继续创建了另一个.NET Portable库项目,该项目有一个如下所示的project.json: { “supports”: {}, “dependencies”: { “Microsoft.NETCore.Portable.Compatibility”: “1.0.1”, “NETStandard.Library”: “1.6.0”, “xunit”: “2.2.0-beta4-build3444”, “xunit.runner.visualstudio”: “2.1.0” }, “frameworks”: { “netstandard1.6”: { } } } 我在该项目中的测试类如下所示: using USB.EnterpriseAutomation.Security.DotNetCore; using […]

比.ToArray()强大的东西强制枚举LINQ输出

我正在使用LINQ to objects并且有一个函数,在某些情况下我需要在调用Aggregate(…)之前修改底层集合,然后在函数返回Aggregate(…)的结果之前将其返回到其原始状态Aggregate(…) 我当前的代码看起来像这样: bool collectionModified = false; if(collectionNeedsModification) { modifyCollection(); collectionModified = true; } var aggregationResult = from a in (from b in collection where b.SatisfysCondition) .Aggregate(aggregationFunction) select a.NeededValue; if(collectionModified) modifyCollection(); return aggregationResult; 但是,如上所述,如果我修改了集合,我将得到错误的结果,因为我在枚举aggregationResult并且延迟评估LINQ结果之前将集合恢复到其原始状态。 我目前的解决方案是在我的LINQ查询上使用.ToArray() ,如下所示: var aggregationResult = (from a in (from b in collection where b.SatisfysCondition) .Aggregate(aggregationFunction) select a.NeededValue).ToArray(); 结果数组的大小总是很小(<100项),因此内存/处理时间不是问题。 这是处理我的问题的最佳方法,还是有更好的方法来强制评估LINQ查询?

如何使用ReSharper创建NUnit测试?

我正试图用C#进行unit testing。 各种各样的人告诉我要使用NUnit,因为它比MSTest更好(显然,我不知道),并且它在我使用的ReSharper中也有很好的支持。 现在我从来没有在我的生活中写过unit testing(忍受我,我是大学生)。 ReSharper有这个很好的CreateUnitTests上下文菜单选项,我见过其他人(随便看看肩膀)用来取得巨大成功。 右键单击一个方法,选择CreateUnitTests,然后在那里创建一个测试框架。 你只需填写重要的位。 现在当我尝试相同的时候,ReSharper希望我创建一个新的测试项目……当我让它时,它创建(我正在假设)一个MSTest项目,显然是一个MSTest测试模板。 但是我已经有了一个类libarary项目,它引用了“nunit.framework”并且有一些NUnit测试,ReSharper非常愿意运行它们。 尽管如此,它只创建了MSTest测试模板,并且只在特殊的“测试项目”项目中创建。 我究竟做错了什么? 我是做错了什么,还是创建了ReSharper无法实现的NUnit测试模板? 我在网上搜索并阅读了ReSharper和NUnit的文档,我仍然无法弄清楚这是否可能或者是什么。 如果有人能为我提供使用ReSharper + NUnit的指南,我将不胜感激。 编辑:我正在使用ReSharper 4.5和NUnit 2.5.3 EDIT2:显然我是个白痴。 CreateUnitTests不是ReSharper的一部分,而是Visual Studio的一部分,因此只能与MSTest一起使用。

AND操作不能在可空的bool之间应用

我在两个可以为空的布尔值( bool? )之间应用AND操作( && ),但它给了我错误 运算符&&不能应用于bool?类型的操作数bool? 和bool? 我如何在包含两个可空的bool的声明中应用和操作? 如果我有像这样的对话结果 dialog.ShowDialog () == DialogResult.OK 我怎样才能将它转换为可以为空的bool,因为我需要在其他操作数返回可以为空的bool的if条件中放入’&&’运算符? 这是代码: if (dialog.ShowDialog () == DialogResult.OK && CheckProjectPath(dialog.FileName, true)) 这个if条件中的第二个操作数是可以为空的bool。

断点没有在Xamarin Studio中被击中

我的断点没有在Xamarin Studio中受到影响。 我不确定这是否与我的代码有关,但我感觉好像没有,因为我已经在我的项目中一遍又一遍地尝试断点(在我知道他们肯定应该是的地方)命中,并且在代码完美运行且与我正在测试的function完全无关的地方,并且当我调试时它们都没有得到确认。 我没有禁用断点,我没有将它们添加到错误的位置。 断点应该正常工作,而不是。 我还要补充一点,我不允许在调试过程中暂停我的应用程序。 我想你可以说我的Xamarin Studio中的调试器不工作,我不明白为什么。 我相信我已经确定它与代码无关,但我仍然不能确定。 请帮忙。 谢谢。

将用户设置存储到应用程序文件

我正在使用我的C#应用​​程序设置,如下所示: String str = Properties.Settings.Default.SETTINGS_NAME; 保存此设置时,会创建一个设置文件 C:\Documents and Settings\\Local Settings\Application Data\\Keb.exe_Url_pbs4eg1o2ija22omldrwjxhdam0jxxi5\1.0.0.0\user.config 有没有办法将此路径更改为Application.ExecutablePath\user.config ,并在下次使用它,以便我的应用程序可以更轻松?