小编Ran*_*ngy的帖子

MVVM中的Silverlight热键命令?

我正在尝试基于Silverlight中的击键来触发命令.据我了解,您无法在Silverlight中使用AccessKey或AcceleratorKey.它看起来可能是有用的附加属性InputBindings也不起作用.

我开始在其他地方寻找.看起来Prism是让Silverlight中的命令工作的方式,所以我检查了一下.但是它们只有一个Click处理程序,它甚至不是设置关键命令的有用起点.

我只是错过了Prism的某些部分吗?或者有一个很好的标准方法来处理MVVM Silverlight的热键?

c# silverlight prism hotkeys mvvm

8
推荐指数
1
解决办法
6270
查看次数

在 p 调用非托管 DLL 时获取标准输出?

我有一个非托管的 DLL,它正在将日志消息写入标准输出。我正在使用来自 WPF 应用程序的 P 调用调用此 DLL,我需要获取标准输出流日志。我试过 Console.SetOut,但这似乎只能捕获使用 Console.Write 等编写的信息。

谁有想法?我在其他地方发现了类似的问题,但他们没有答案。

c# pinvoke stdout

8
推荐指数
1
解决办法
3886
查看次数

我的user.config设置文件是如何损坏的?

我有一个用户通过以下呼叫发送崩溃报告给我Settings.Upgrade():

System.Configuration.ConfigurationErrorsException: Root element is missing.

我让他把他的user.config文件发给我,文件全是零.它以某种方式腐败了.

我找到了一种方法,通过在%localappdata%\ MyAppName目录周围生成并删除所有用户配置文件并重新启动应用程序来从中恢复.如果我让应用程序继续执行,它将进一步提供ConfigurationErrorsExceptions.

这种腐败可能是我做过的事情的结果吗?我已经从几千个用户的基础上得到了多个报告,但我并没有直接搞乱这个文件.有没有其他人遇到这个user.config损坏?

.net wpf settings .net-4.0

8
推荐指数
1
解决办法
3901
查看次数

如何使用XDocument保留所有XML格式?

我正在尝试读取XML配置文件,进行一些调整(查找和删除或添加元素)并再次保存.我希望这个编辑尽可能不侵入,因为该文件将受源代码控制,我不希望无关紧要的更改导致合并冲突等.这大致是我得到的:

XDocument configDoc = XDocument.Load(fileName, LoadOptions.PreserveWhitespace);
// modifications to configDoc here
configDoc.Save(fileName, SaveOptions.DisableFormatting);
Run Code Online (Sandbox Code Playgroud)

这里出现了一些问题:

  1. encoding="utf-8" 被添加到xml声明中.
  2. <tag attr="val"/> 变了 <tag attr="val" />
  3. 为了便于阅读而分散在不同行中的属性将全部推送到一行.

是否有任何方法可以减少对XDocument的干扰,或者我是否必须尝试进行字符串编辑以获得我想要的内容?

c# xml linq-to-xml

8
推荐指数
1
解决办法
2284
查看次数

为什么x64中的1个字符的.NET字符串为32个字节?

我一直试图弄清楚.NET 4 x64中字符串的开销.这是我到目前为止所得到的.

  • x64的16字节对象标头
  • stringLength字段的4个字节(在.NET 4中,arrayLength消失了)
  • (长度+ 1)*字符串内容的2个字节(UTF-16,空终止)

所以你希望1个字符的字符串是16 + 4 + 4 = 24个字节.它可以被8整除,因此它不需要任何填充.

但是当我查看WinDbg中的大小时,我发现它们占用了32个字节.当我!dumpobject他们说他们的大小是28字节,这是我假设是四舍五入到32.发生了什么?是否还有另一轮内存对齐?

.net memory string .net-4.0

7
推荐指数
1
解决办法
500
查看次数

.NET 5 中的 Windows API - Microsoft.Windows.SDK.NET.dll 是 25MB?

我按照在 .NET5 中调用 Windows API指南来调用我的 WPF 应用程序中的通知 API。Microsoft.Windows.SDK.NET.dll然而现在它在我的输出目录中放置了 25MB 。仅仅为了一个小功能,这就会使我的应用程序的下载大小增加 50%。有没有办法将其精简为我需要的 API?

c# wpf .net-5

7
推荐指数
1
解决办法
1213
查看次数

在TextBox中查找插入符号的位置

我需要知道插入符号在TextBox中的位置,这样我就可以弹出它附近的上下文菜单.如何找到它的位置(不是字符索引)?

.net c# wpf

6
推荐指数
1
解决办法
5160
查看次数

在C#中聚合接口

我有这门课:

class UrlManagementServiceClient : System.ServiceModel.ClientBase<IUrlManagementService>, IUrlManagementService
Run Code Online (Sandbox Code Playgroud)

ClientBase实现IDisposableICommunicationObject.我也有这个界面:

interface IUrlManagementProxy : IUrlManagementService, ICommunicationObject, IDisposable
Run Code Online (Sandbox Code Playgroud)

但我无法施放UrlManagementServiceClient物体IUrlManagementProxy.有没有办法实现这个目标?我想最终得到一个可以访问所有三个接口上的所有方法的对象.

.net c# interface

6
推荐指数
1
解决办法
1478
查看次数

使用Task.FromAsync的IAsyncResult重载的性能成本

我正在尝试将一些现有的APM调用(BeginX,EndX)包装Tasks进去,以获得它们的所有好处.不幸的是,我们的方法是非常规的并使用out参数,所以不能使用标准FromAsync方法,你给它的开始和结束代表,并让它很好地包装它.

本文描述了另一种选择:一个带有a的重载,IAsyncResult只需要你实现结束回调.他们拿走IAsyncResult句柄,然后等到它完成,然后调用你传入的代表.

这似乎很好,但后来我读了另一篇关于在任务中包装APM调用的文章.他还提到IAsyncResult过载不如其他方法有效.在我看来,这意味着回调不用于报告方法的完成.这意味着他们必须使用AsyncWaitHandle或轮询IsCompleted.他们使用哪一个?它的性能损失是多少?

如果它正在进行轮询,这意味着回调可能不会立即发生,他们必须在整个通话期间忙着检查它.如果他们有一个AsyncWaitHandle,他们有另一个线程坐着等待结果,这完全打败了我使用异步方法的意义.

有谁知道他们在做什么以及这种性能损失有多严重?

.net c# asynchronous task

6
推荐指数
1
解决办法
1764
查看次数

抑制处理器不匹配警告

我在构建项目时收到此警告:

正在构建的项目的处理器体系结构"MSIL"与参考"D:\ ReferencedProject.dll","ARM"的处理器体系结构之间存在不匹配.这种不匹配可能会导致运行时故障.请考虑通过Configuration Manager更改项目的目标处理器体系结构,以便在项目和引用之间调整处理器体系结构,或者依赖于具有与项目的目标处理器体系结构相匹配的处理器体系结构的引用.

我有一个Windows Phone 8.1 Silverlight项目,似乎被迫使用AnyCPU目标,以及一些x86和ARM特定的子组件.由于我无法更改应用程序项目的体系结构,因此我想抑制此警告.

我已经搜索了一种方法来执行此操作,并且有几页说<ResolveAssemblyWarnOrErrorOnTargetArchitectureMismatch>None</ResolveAssemblyWarnOrErrorOnTargetArchitectureMismatch>在我的csproj文件中设置.我已尝试在引用和引用的项目上执行此操作,但我仍然收到警告.

我怎么压制这个?

c# msbuild visual-studio-2013

6
推荐指数
1
解决办法
2117
查看次数