如何分析Windows Crash Reporter生成的WERInternalMetadata.xml文件?

.Net 4.0应用程序不断为用户崩溃,但仅仅对他来说,我无法重现该错误。 他附加了Windows崩溃报告器生成的WERInternalMetadata.xml文件。 通过打开它,我发现它是一个崩溃软件的System.IO.FileNotFoundException ,但是,在该函数中没有调用会抛出这种exception的函数,所以在其他地方或更深处是问题。 这是文件中“最有趣”的部分。 它包含(hex)数字,但我无法找出它们的含义。 CLR20r3 rstvshowtracker.exe 1.0.3842.33258 4c374e79 mscorlib 4.0.0.0 4ba1da6f 1620 14 System.IO.FileNotFoundException 有没有办法找出导致exception的代码,或者至少找出比FileNotFoundException更多的细节?

无法让ASP.NET MVC 6 Controller返回JSON

我有一个MVC 6项目,我正在使用Fiddler来测试Web API。 如果我采取以下控制器操作,使用EntityFramework 7返回List。 然后html将呈现正常。 [HttpGet(“/”)] public IActionResult Index() { var model = orderRepository.GetAll(); return View(model); } 但是当我尝试返回Json响应时,我得到502错误。 [HttpGet(“/”)] public JsonResult Index() { var model = orderRepository.GetAll(); return Json(model); } 关于为什么对象没有正确序列化为json的任何想法?

如果我知道资源的名称,则返回资源的id

如果我知道资源的名称,我怎么能返回资源的id? 像这样的东西: String mDrawableName = “myappicon”; int resID = getResources().getIdentifier(mDrawableName , “drawable”, getPackageName());

Json.NET Dictionary with StringComparer序列化

我有一个字典Dictionary<string, Dictionary> 。 外部字典和内部字典都有一个相等比较器集(在我的例子中是StringComparer.OrdinalIgnoreCase )。 字典序列化和反序列化后,两个字典的比较器都未设置为StringComparer.OrdinalIgnoreCase 。 如果您可以控制代码中字典的创建,则可以创建从字典inheritance的类,并在类的默认构造函数中设置comparer。 但是,如果您无法控制字典创建并从其他代码获取字典,该怎么办? 有没有办法用比较器正确序列化/反序列化?

System.Timers.Timer仅提供每秒最多64帧

我有一个应用程序,它使用System.Timers.Timer对象来引发由主窗体( Windows窗体 ,C#)处理的事件。 我的问题是,无论我设置.Interval(甚至1毫秒)有多短,我每秒最多得64次。 我知道Forms计时器的精度限制为55毫秒,但这是System.Timer变体,而不是Forms表单。 该应用程序占用1%的CPU,因此它肯定不受CPU限制。 所以它所做的只是: 将Timer设置为1&nsp; ms 触发事件时,增加_Count变量 再次将其设置为1&nsp; ms并重复 即使没有其他工作要做,_Count每秒最多增加64次。 这是一个“回放”应用程序,它必须复制进来的数据包,它们之间只有1-2毫秒的延迟,所以我需要能够每秒可靠地发射1000次的东西(尽管如果我能满足100的话)是CPU限制,我不是)。 有什么想法吗?

通过命令行构建.NET Core应用程序,以便它可以在未安装.NET Core的计算机上运行

我的最终目标是创建一个跨平台(非Web)控制台应用程序,所以我现在正在探索.NET Core。 在我之前的.NET项目中,我在Visual Studio中进行了所有开发,但我还创建了一个批处理/ MSBuild文件,因此我只需单击一下即可构建整个项目(包括设置,NuGet包,带二进制文件的zip文件等) 。 这是以前项目的一个例子 。 最后,我想用我的.NET Core测试项目做类似的事情。 但是现在我在第一步失败了:我无法在Visual Studio之外构建它,因此结果可以在没有安装.NET Core的另一台Windows机器上运行。 (在第一步中,我忽略了跨平台部分 – 我很乐意让它在Windows上运行) 是)我有的 我设法让它在Visual Studio 2015 Community Edition中工作,如下所示: 在Visual Studio中创建新项目: “新建项目”⇒“Web”⇒“控制台应用程序(包)” 在Visual Studio中创建新的发布配置文件(菜单中的“Build”⇒“Publish”)。 这将创建一个PowerShell脚本 (以及一个带有设置的XML文件 ) 这是我在GitHub上的测试项目 。 当我再次在菜单中“构建”⇒“发布”时,Visual Studio显然会再次执行先前创建的PowerShell脚本。 结果略超过90 MB,由598个文件夹中的825个文件组成,如下所示: 当我将它复制到另一台机器上时(安装了Win 7 / .NET 4 / 未安装.NET Core),它可以工作。 我试图在Visual Studio之外获得相同的结果 1. dotnet发布 这个答案和这个答案听起来像我可以使用dnu publish通过命令行实现相同的结果。 我知道.NET Core的部分目前仍在移动目标,所以显然dnu现在是dotnet 。 所以我尝试为它执行dotnet publish […]

如何在构造函数中使用Visual Studio不会在设计时执行代码?

我在我的用户控件的构造函数中有一个方法调用,它做了一些在设计时无法工作的东西(连接到数据库),而当我尝试将该控件添加到GUI设计器时,Visual Studio就得到了保护。 当然,我可以将代码分解为一个单独的方法,但我不喜欢每次使用该对象时我都需要记住执行某个对象函数必不可少的方法的想法(这就是构造函数是什么对于!)。 是否有类似预处理器符号的东西,我可以用我的代码标记,以便Visual Studio不会尝试在设计时执行该代码?

尝试以编程方式删除文件夹时“目录不为空”错误

在我的应用程序中,我构建了一个用户可以创建图片库的系统。 在磁盘上以category_name / gallery_name / {pictures}格式保存在文件夹中的照片。 每张上传的照片都存储在上面给出的相关目录结构下。 当尝试删除类别,以及从数据库中删除时,我也想删除系统中的相关文件夹。 当我第一次收到错误消息“目录不为空”时,我搜索并找到了这个解决方案: public static void DeleteDirectory(string target_dir) { string[] files = Directory.GetFiles(target_dir); string[] dirs = Directory.GetDirectories(target_dir); foreach (string file in files) { File.SetAttributes(file, FileAttributes.Normal); File.Delete(file); } foreach (string dir in dirs) { DeleteDirectory(dir); } Directory.Delete(target_dir, false); } 使用此解决方案,“gallery_name”文件夹中的照片被删除就好了,然后gallery_name文件夹本身被删除了。所以我们现在留下一个空的category_name文件夹。 然后调用上Directory.Delete(target_dir, false);例程( Directory.Delete(target_dir, false); )中的最后一部分代码来删除category_name文件夹。 错误再次引发.. 有谁知道解决这个问题? Directory.Delete(target_dir, true); 不起作用,这就是为什么我尝试了另一种选择。 […]

如何确定.NET中复杂对象的大小?

有没有办法确定.NET中复杂对象的总大小? 此对象由其他对象组成,可能包含对其他复杂对象的引用。 此对象封装的某些对象可能是POD,其他对象可能不是。

我可以将类型对象传递给generics方法吗?

我的DataAccessLayer上有一个FindAll方法,如下所示: public FindResult FindAll() where T : Entity, new() 和一个客户端代码有一个Type []数组,它需要用来迭代调用FindAll方法,如下所示: foreach (var type in typeArray) { var result = DataAccessLayer.FindAll(); … 但编译器抱怨“预期的类型或命名空间”..有没有一种简单的方法来解决这个问题? 我尝试过type.GetType()或typeof(type),但都没有用。 提前谢谢了!