小编J4N*_*J4N的帖子

下划线未显示在WPF中

在我的整个应用程序中,我有一些未显示的下划线(_).

这是由于访问者.但是如何禁用它呢?适用范围广?我没有标签,文本框,......

谢谢

wpf accessor

16
推荐指数
3
解决办法
1万
查看次数

使用await-async的最佳实践,在哪里开始任务?

我开始在.Net WPF应用程序中使用await/async机制.

在我的ViewModel中,我在服务上调用异步方法.

我的问题是:它是否更好

  1. 直接在这项服务中,做一个大 return await Task.Run(()=>{...});
  2. 让这个服务上的所有子方法也是异步的,然后在里面有这个Task.Run吗?

举例:

1)

public class Service:IService{
    public async Task<SomeResult>(SomeParameter parameter){
        return await Task.Run(()=>{
            CopyStuff(parameter.A);
            UpgradeStuff(parameter.B);
            return ReloadStuff(parameter.C)
        });
    }

    private void CopyStuff(ParamA parameter){
        ...//Some long operation that will mainly wait on the disk

    }
    private void UpgradeStuff(ParamB parameter){
        ...//Some long operation that should not block the GUI thread
    }
    public SomeResult ReloadStuff(ParamC parameter){
        return ...;//Some long operation that relaunch some services and return their successs      
    }   
}
Run Code Online (Sandbox Code Playgroud)

2)

public class …
Run Code Online (Sandbox Code Playgroud)

.net c# wpf asynchronous

15
推荐指数
1
解决办法
5056
查看次数

当我调用OpenFileDialog的ShowDialog方法时,vshost32.exe已停止工作

我是ac#应用程序,我正在对它进行最终测试.

但是现在,到目前为止每次工作的功能都不再起作用了!

我有一个按钮,当我点击它时我想浏览文件,我看到"打开文件"窗口,半秒后,我得到了一个未被捕获的视觉工作室错误:

vshost32.exe已停止工作:

对不起,但错误发生在法语本地化计算机上:

Signature du problème :
  Nom d’événement de problème:  APPCRASH
  Nom de l’application: TOM.vshost.exe
  Version de l’application: 10.0.30319.1
  Horodatage de l’application:  4ba2084b
  Nom du module par défaut: ntdll.dll
  Version du module par défaut: 6.1.7600.16695
  Horodateur du module par défaut:  4cc7ab44
  Code de l’exception:  c0000008
  Décalage de l’exception:  0004631f
  Version du système:   6.1.7600.2.0.0.256.48
  Identificateur de paramètres régionaux:   4108
  Information supplémentaire n° 1:  ffb6
  Information supplémentaire n° 2:  ffb61531feaa1f65f528a2694a510c22
  Information supplémentaire n° 3:  b220
  Information supplémentaire n° 4: …
Run Code Online (Sandbox Code Playgroud)

c# wpf visual-studio-2010 vshost.exe

14
推荐指数
2
解决办法
2万
查看次数

Asp.Net MVC和HTML5 PUSH通知

我想在一个完整的HTML5应用程序中有服务器端事件.

服务器端我有一个asp.net MVC3 Web服务器,它提供HTML页面和JSON结果.

集成某些服务器事件的最佳方法是什么?就像一个可以向客户发送一些短信的过程?

我做了一些搜索,发现了一些关于Asp.Net web api的东西,但我不知道它是什么以及我是否可以将它与MVC一起使用.

asp.net-mvc html5 push-notification

14
推荐指数
2
解决办法
3万
查看次数

如何调试Unity分辨率?

在WPF项目(带棱镜)中,我们使用UnityDI框架.

最近,在我们合并了两个大分支机构之后,我们无法启动我们的应用程序StackOverflowException.由于异常的性质,我们无法得到他的调用堆栈或当前值,我们只是因为命名空间而导致问题是来自Unity.

我们花了5个多小时才找到问题所在:

简化:

我们有3-4个服务(A,B,C和D),每个服务都有一个实现,并且在某些时候,服务A需要服务B,这需要服务C,这需要服务D ,这需要服务A).基本上是循环引用.

我们想知道是否有可能添加一些Unity尝试使用实现X解决服务A的日志,并且需要解析服务B,...

这将有助于我们调试此问题,直接查看哪些服务涉及此循环引用.

反正有没有实现这个目标?

c# wpf dependency-injection prism unity-container

14
推荐指数
2
解决办法
1786
查看次数

设置程序必须在启动时从安装程序运行

我有一个C#.net 4应用程序,我开始创建安装程序.

安装的程序工作正常,但我的客户希望应用程序从窗口开始(它是一个"始终顶部"工具栏,帮助他们管理他们的调用).

我想创建一个"类安装程序",并在其中插入一个键在注册表中.

我有两个问题:

第一:如何找到可执行路径?它可以在安装之间改变.我在某处找到了Application.ExecutablePath,但它似乎位于Application.Window.Forms中,所以我认为它与WPF不兼容

第二:我需要在本地机器的注册表中插入此密钥.Windows安装程序中是否有一种方法可以指定用户必须具有管理员权限?

这是我开始的代码:

RegistryKey rkApp = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);
rkApp.SetValue("CstStart", ???);
Run Code Online (Sandbox Code Playgroud)

非常感谢您的帮助!

编辑:我发现我可以传递给我的自定义操作一些数据,:

/ DIR = "[TARGETDIR] \"

在CustomActionData中.

通常它说我可以通过它检索它

this.Context.Parameters["DIR"];
Run Code Online (Sandbox Code Playgroud)

但是....似乎在我的安装程序类中,this.Context为null :(

EDIT2:Context是null因为我在构造函数中这样做,我现在正在this.AfterInstall中执行此操作,现在我得到一个上下文,它似乎包含一个var"assemblypath",其中包含我需要的路径.

c# registry installer startup visual-studio

13
推荐指数
1
解决办法
3万
查看次数

正则表达式口音不敏感?

我需要一个C#程序中的正则表达式.

我要捕获具有特定结构的文件的名称.

我使用了\ w char类,但问题是这个类与任何重音字符都不匹配.

那怎么办呢?我只是不想在我的模式中添加最常用的重音字母,因为我们理论上可以在每个字母上加上每个重音.

所以我虽然可能有一种语法,比如说我们想要一个不区分大小写(或者一个考虑重音的类),或者一个"正则表达式"选项,它允许我不区分大小写.

你知道这样的事吗?

非常感谢你

c# regex diacritics non-ascii-characters

12
推荐指数
3
解决办法
1万
查看次数

Asp.Net MVC:一些未本地化的默认错误消息?

我有一个完全本地化的网站,主要是法语/英语/德语.

现在,一切都很顺利,但我确实注意到asp.net MVC的一些错误消息的问题.

我的模型中有一个属性:

[Required]
[LocalizedDisplayName("PublicationDate", NameResourceType = typeof(LocalizationResources.Views.Composer.BaseInfoForm))]
public DateTime PublicationDate { get; set; }
Run Code Online (Sandbox Code Playgroud)

LocalizedDisplayname是DisplayNameAttribute的扩展,它位于Resx文件中以获取正确的翻译

线程CurrentCulture和CurrentCultureUI在fr-FR中,因此消息应该以法语显示(就像我的[Required]属性一样,自动显示"Le champ Publication est requis").

但是在DateTime的情况下,如果我输入的东西不是日期,验证器只返回一个" The value 'asdfasdf' is not valid for Publication."所以:

  • 为什么MVC有时会以法语返回错误信息,有时用英语回复,同样的形式(我确切地说,这是默认的错误信息)
  • 如何通过指示诸如"La valeur {0} n'est pas une date valide pour le champ {1}"之类的文本来通用地替换此消息

非常感谢你

validation asp.net-mvc localization data-annotations

11
推荐指数
1
解决办法
9757
查看次数

内存溢出:拥有越来越多的Microsoft.CSharp.RuntimeBinder.Semantics

我们正在寻找应用程序中的一些内存泄漏,在进行一些操作(在我们的应用程序中加载和关闭一个项目)时,我们知道内存总是增加一点点.

我们已经找到了很多它们,但是现在,10个以上增加最多的类是(根据我们的工具,ANTS Memory Profiler 8.2):

  • Microsoft.CSharp.RuntimeBinder.Semantics.SYMTBL +键
  • Microsoft.CSharp.RuntimeBinder.Semantics.LocalVariableSymbol
  • Microsoft.CSharp.RuntimeBinder.Semantics.CONSTVAL
  • Microsoft.CSharp.RuntimeBinder.Semantics.EXPRCONSTANT
  • Microsoft.CSharp.RuntimeBinder.Semantics.EXPRCLASS
  • Microsoft.CSharp.RuntimeBinder.Semantics.EXPRTYPEOF
  • Microsoft.CSharp.RuntimeBinder.Semantics.EXPRLIST
  • Microsoft.CSharp.RuntimeBinder.Semantics.MethWithInst
  • Microsoft.CSharp.RuntimeBinder.Semantics.CMemberLookupResults
  • Microsoft.CSharp.RuntimeBinder.Semantics.EXPRMEMGRP
  • Microsoft.CSharp.RuntimeBinder.Semantics.EXPRCALL
  • Microsoft.CSharp.RuntimeBinder.Semantics.EXPRWRAP
  • Microsoft.CSharp.RuntimeBinder.Semantics.AggregateDeclaration
  • Microsoft.CSharp.RuntimeBinder.Semantics.Scope

不幸的是,我不知道这是什么,所以我有点难以找到我应该释放的内容.

我检查了实例树但是,它一直用微软的东西.

问题在于,当我们对项目进行"打开/关闭"时,我们会经历很多(大部分)代码.

编辑我们的应用程序的一部分使用dynamic关键字作为某些资源,它可能是链接的.这里的课程不是Disposable,我应该和他们做些什么吗?

编辑2

我很确定这与我的dynamic东西有关,似乎C#在使用动态时创建了一个缓存.但是目前我不知道它为什么会增长(我一直加载相同的类,我将始终拥有完全相同的签名),也不知道如何清除它.

c# profiler memory-leaks dynamic-language-runtime overflow

11
推荐指数
2
解决办法
1496
查看次数

在应用程序未集中时监听密钥

我有一个应用程序(C#4.0-WPF),它是隐藏的,可以通过单击系统托盘图标或我创建的其他框架(左侧和最顶部停靠的小框架)显示.

我的客户希望添加一种新的方式来显示应用程序:当按下"F"键(例如F9)时.

如果用户在应用程序不是当前窗口或未关注时按下此键,我如何知道我的应用程序?

.net c# wpf keyboard-shortcuts shortcut

10
推荐指数
1
解决办法
8726
查看次数