当结果在IActionResult类型中返回时,如何在Xunit中获取内容值

我有一个使用Xunit的unit testing项目,我们测试的方法返回IActionResult 。 我看到有些人建议使用“NegotiatedContentResult”来获取IActionResult的内容,但这在Xunit中不起作用。 所以我想知道如何在IActionResult中获取IActionResult的内容值? 测试代码示例如下: public void GetTest() { var getTest = new ResourcesController(mockDb); var result = getTest.Get(“1”); //Here I want to convert the result to my model called Resource and //compare the attribute Description like below. Resource r = ?? //to get the content value of the IActionResult Assert.Equal(“test”, r.Description); } 有没有人知道如何在XUnit中这样做?

LINQ string 针对多个字段

假设我有一个表dataContext.Customer,其中包含以下字段 FName varchar LName varchar Phone varchar DOB datetime Address varchar 该表填充了一些示例数据,让我们说: John | Smith | 3051112222 | 01/01/1978 | Roosevelt Av 787 Aron | Frank | 7871112222 | 01/01/1979 | Lambda Street 305 Dick | Bush | 9512221111 | 01/01/1980 | John Street 1 John | Allen | 7872222222 | 01/01/1981 | Liberty Av […]

C#:将COMP-3压缩十进制转换为人类可读值

我有一系列ASCII平面文件从大型机进来,由C#应用程序处理。 引入了带有Packed Decimal(COMP-3)字段的新Feed,需要将其转换为数值。 使用ASCII传输模式通过FTP传输文件。 我担心二进制字段可能包含将被解释为非常低的ASCII代码或控制字符而不是值 – 或者更糟糕的是,可能在FTP进程中丢失。 更重要的是,字段被读作字符串。 我可以灵活地解决这个问题(即某种流),但业务会给我带来阻力。 该要求为“从HEX转换为ASCII”,但显然没有产生正确的值。 任何帮助,将不胜感激; 只要您能够解释转换过程的逻辑,它就不必是特定于语言的。

如果文件名为_ViewStart.cshtml,则Razor Layout不起作用

我有一个MVC3网络应用程序,我想开始使用整个Razor视图。 大多数网站都使用Site.Master正常工作,所以我将大部分网站打包成部分视图,并尝试添加具有相同内容的布局。 在阅读Scott Gu的博客后,我在~/Views目录中添加了一个名为_ViewStart.cshtml的文件,以便默认情况下应用它。 不幸的是,这给了我错误: The name ‘RenderBody’ does not exist in the current context 如果该文件名为_viewstart.cshtml 。 如果它被称为_layoutviewstart.cshtml它将工作但我必须直接在视图中引用它。 如果它被称为_billyviewstart.cshtml是有效的,但我必须再次在视图中直接引用它。

entity framework中推荐的身份生成方法是什么?

我对StoreGeneratedPattern最高效的方式感兴趣。 在过去,我习惯让DB为我生成ID,但我想知道设置是否有任何优势 StoreGeneratedPattern = None 代替 StoreGeneratedPattern = Identity 我甚至不确定当我将它设置为Calculated时会发生什么。 有什么建议? 有没有与此相关的好文章,因为msdn不是很清楚。 我在架构中使用的GUID很少使用整数。

System.Timers.Timer是否在独立的线程中运行?

我试图了解System.Timers.Timer何时引发已发生的事件,是否在独立线程中引发? 我的下面的例子似乎暗示三个计时器在他们自己的线程中独立运行: class Program { static System.Timers.Timer timer = new System.Timers.Timer(); static System.Timers.Timer timer2 = new System.Timers.Timer(); static System.Timers.Timer timer3 = new System.Timers.Timer(); static void Main(string[] args) { timer.Elapsed += new System.Timers.ElapsedEventHandler( timer_Elapsed); timer2.Elapsed += new System.Timers.ElapsedEventHandler( timer2_Elapsed); timer3.Elapsed += new System.Timers.ElapsedEventHandler( timer3_Elapsed); timer.Interval = 1000; timer2.Interval = 1000; timer3.Interval = 1000; timer.Start(); timer2.Start(); timer3.Start(); […]

强制.NET JIT编译器在应用程序启动期间生成最优化的代码

我正在用C#编写一个DSP应用程序(基本上是一个多轨编辑器)。 我在不同的机器上进行了很长一段时间的分析,我注意到了一些“好奇”的东西。 在我的家用机器上,回放循环的第一次运行占用了可用时间的大约50%-60%,(我认为这是由于JIT正在完成其工作),然后对于后续循环,它会下降到稳定的5 % 消费。 问题是,如果我在较慢的计算机上运行应用程序,第一次运行占用的时间超过可用时间,导致播放中断并弄乱输出音频,这是不可接受的。 之后,它降至8%-10%的消费量。 即使在第一次运行之后,应用程序仍然不时地调用一些耗时的例程(每2秒或多或少),这导致稳定的5%消耗经历非常短的20%-25%的峰值。 我注意到如果我让应用程序运行一段时间,这些峰值也会下降到7%-10%。 (我不确定这是否是由于JIT重新编译这些代码部分)。 所以,我对JIT有一个严重的问题。 虽然应用程序即使在非常慢的机器中也能很好地运行,但这些“编译风暴”将成为一个大问题。 我试图弄清楚如何解决这个问题,我想出了一个想法,即用一个属性标记所有’明智的’例程,告诉应用程序在启动时预先“挤压”它们因此,当他们真正需要时,他们将完全优化。 但这只是一个想法(我也不太喜欢),我想知道是否有更好的解决方案来解决整个问题。 我想听听你们的想法。 (NGEN应用程序不是一个选项,我喜欢并希望我能获得所有JIT优化。) 编辑: 内存消耗和垃圾收集没有问题,我正在使用对象池,播放期间的最大内存峰值为304 Kb。

自动将位图修剪为最小尺寸?

假设我有一个32bpp ARGB模式的System.Drawing.Bitmap 。 这是一个很大的位图,但它主要是完全透明的像素,中间某处有一个相对较小的图像。 检测“真实”图像边界的快速算法是什么,所以我可以裁掉周围的所有透明像素? 或者,我可以使用.Net中的function吗?

在C#中使用正确的IntPtr

我想我理解IntPtr的使用,虽然我真的不确定。 我从MSDN复制IDisposable模式只是为了看看我能从中得到什么,虽然我大部分时间都理解它,但我不知道如何正确实现IntPtr,或者甚至不知道它应该“指向什么” “参考或参考。 最重要的是,我不知道如何为IntPtr分配或转换整数,字符串,字符,双精度等来创建指针。 此外,IntPtr是否需要使用不安全的代码? 无论如何,这里有一些代码只是为了描绘我正在谈论的内容: namespace Utilities { class Disposer : IDisposable { private IntPtr handle; private Component component = new Component(); private bool disposed = false; public Disposer(IntPtr handle) { this.handle = handle; } public void Dispose() { Dispose(true); GC.SuppressFinalize(this); } protected virtual void Dispose(bool disposing) { if(!this.disposed) { if (disposing) { component.Dispose(); […]

如何应对Rounding-TimeSpan?

我取两个DateTime字段之间的区别,并将其存储在TimeSpan变量中,现在我必须通过以下规则来舍入TimeSpan: 如果TimeSpan中的分钟数小于30,那么分钟和秒必须设置为零, 如果TimeSpan中的分钟数等于或大于30,则小时数必须增加1,分钟数和秒数必须设置为零。 TimeSpan也可以是负值,所以在这种情况下我需要保留符号.. 如果TimeSpan不是负值,我可以达到要求,虽然我已经编写了一个代码,我对它的低效率不满意,因为它更笨重。 请建议我一个更简单有效的方法。 感谢和问候, 这是我的代码,当TimeSpan不是负值时工作正常。 TimeSpan time_span = endTime.Subtract(startTime); TimeSpan time_span1; if (time_span.Minutes >= 30) { time_span1 = new TimeSpan(time_span.Hours + 1, 0, 0); } else { time_span1 = new TimeSpan(time_span.Hours, 0, 0); } time_span1将包含结果..