小编Tim*_*oyd的帖子

如何中止/取消TPL任务?

在一个线程中,我创建一些System.Threading.Task并启动每个任务.

当我做一个.Abort()杀死线程时,任务不会中止.

我怎样才能传递.Abort()给我的任务?

.net c# multithreading task abort

144
推荐指数
7
解决办法
15万
查看次数

AutoMapper的替代品

除了AutoMapper之外,.NET中的对象到对象映射有哪些不同的替代框架

目前我们计划使用AutoMapper,但在最终确定此框架之前,我们希望了解其他任何框架.

.net automapper

58
推荐指数
4
解决办法
3万
查看次数

WPF Xaml的StringFormat功能是否适用于Label.Content?

我通过DataContext 将Amount Label的 Content属性绑定到十进制属性.我正在尝试应用stringformat但看不到任何效果.StringFormat功能是否适用于Label控件?请告诉我这项功能适用于哪些控件.BTW以下是我想要应用货币格式的Label Control代码

<Label Grid.Column="2" Content="{Binding Path=Amount, StringFormat={}{0:C}}" Height="23" HorizontalAlignment="Left" Margin="100,10,0,0" Name="tb" VerticalAlignment="Bottom" Width="120" />
Run Code Online (Sandbox Code Playgroud)

wpf xaml label string-formatting

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

如何在WPF中计算字体高度?

有关FontFamily如何以特定方式以编程方式检索/计算该字体的最大高度范围FontSize

我需要一个值来设置一个文本块的高度,该文本块将显示指定的字体FontSize- 这必须以编程方式执行.

我需要一个考虑上升器和下降器等的值.

更新

为了澄清,我需要整个高度范围FontFamily,而不是该字体中某些示例文本的高度.我不知道文本会提前发生什么.

wpf fonts font-size

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

Ninject.可选注射

我有启用/禁用功能的全局标志.我想根据一些标志注入一些依赖项.某些功能需要构造较多的类,因此如果标志的值为false,则我想注入null,否则需要实际的依赖项.Ninject不允许注入null.还有其他选择吗?

更新:构造函数参数可以使用OptionalAttribute属性进行修饰.在这种情况下,如果没有找到相应的绑定,则注入null.这里有一个问题:我无法验证目标类是否可以正确构造.我对每个公共依赖项进行了测试,验证它是否可以成功构建.如果标志的值为true,我将无法在使用该OptionalAttribute属性修饰的依赖项时找到错误,无法正确构造.我只想在绑定级别上管理它.

c# ninject

19
推荐指数
2
解决办法
4514
查看次数

什么是CanExecuteChanged?

我可以使用CanExecuteChanged更改"可执行"条件吗?

或者......"用于什么"它的使用?

wpf mvvm canexecute

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

WPF:对于小型应用程序,Prism是否过度杀伤?

如果我不将我的应用程序拆分成不同的模块(否则我会认为Prism将会成为可行的方法)我应该使用Prism吗?

我知道Prism提供了一个方便的实现ICommand(我可以在代码页中自己完成)并给我们IEventAggregator但是所有Bootstrapper,Shell,ModuleCatalog的东西真的有帮助吗?

为什么不使用MVVM模式(没有Prism)来分离你的顾虑,这样你的应用程序才是可测试的,鲍勃是你的叔叔!

.net c# wpf prism mvvm

14
推荐指数
1
解决办法
1220
查看次数

从BlockingCollection中获取项目的正确方法是什么?

调用BlockingCollection.Take()时,集合的IsCompleted状态可能会在IsCompleted检查和Take()调用之间发生变化.

显示示例的MSDN文档只捕获无效操作异常,但似乎必须有一种正确的方法来执行此类调用而不捕获异常(因为这会产生相当大的开销并且在代码中看起来不干净).调用.Take()和避免无效操作异常的正确方法是什么?

我特定问题的简化版本:

If (!blockingCollection.IsCompleted)
{
//do some stuff
value = blockingCollection.Take();  //Throws Exception, IsCompleted = True;
}
Run Code Online (Sandbox Code Playgroud)

有一个TryTake方法可用,但我的印象是它可以传入超时和取消令牌,而不是处理IsCompleted在检查时和调用Take()之间变为true .

.net c# generics collections synchronization

14
推荐指数
1
解决办法
6450
查看次数

使用Mono将C#.NET应用程序移植到OS X?

好吧,伙计们,我正在编写一个我想要跨平台的应用程序.直到最近,我一直在尝试使用C#在Silverlight中执行此操作,因为它也可以在OS X上运行,但是除了对Silverlight不熟悉之外,我对C#相当生疏,但是在头痛之后我遇到了头痛.其中大部分源于一个旨在在浏览器中运行的应用程序所带来的限制,当从我的开发服务器运行时直接从文件://等运行时,它的运行方式不同.

我宁愿完全放弃整个OS X支持的想法,而不是完全重写OS X的应用程序,特别是因为我完全没有为它写的经验.我希望能够做的是使用Visual Studio for Windows在C#.NET中编写常规应用程序,然后使用Mono轻松将其移植到OS X.

使用Mono将.NET应用程序带到OS X有多难?我的应用程序相当简单,表单或任何东西都没有任何异国情调,所以我不得不假设它在Mono的WinForms实现中得到支持.

关于如何使用Mono移植应用程序有什么好的资源吗?或者,也许,我错过了整点,它只是让你在OS X上运行.NET应用程序,我不需要打扰移植?

原谅我对这个问题一无所知,我只是在10分钟前开始考虑在Silverlight中遇到另一个烦人的限制之后走这条路.

我将是第一个承认我不知道我的屁股关于这个主题的人,所以要温柔...... :)

.net c# macos mono winforms

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

在不将其添加到窗口的情况下测试WPF控件

我有一个在其活动中UserControl发布EventAggregator消息Loaded.为了测试这个(并Loaded引发事件)我正在创建一个窗口并向其添加控件,然后等待Loaded事件被引发.

有没有办法设置测试,以便Loaded事件触发而无需创建控件并将其添加到窗口?

例如:

[Test, RequiresSTA]
public void active_thingy_message_is_published_on_loaded()
{
    const string TestMsg = "Active thingy changed";

    using (AutoResetEvent loadedEvent = new AutoResetEvent(false))
    {
        DummyEventService eventService = new DummyEventService();                
        DummyControl control = new DummyControl(eventService, TestMsg);
        control.Loaded += delegate { loadedEvent.Set(); };

        Assert.That(eventService.Message, Is.Null, "Before.");
        Window window = new Window { Content = control };
        window.Show();                
        loadedEvent.WaitOne();
        window.Dispatcher.InvokeShutdown();
        Assert.That(eventService.Message, Is.EqualTo(TestMsg), "After.");
    }
}

private class DummyControl : UserControl
{
    public …
Run Code Online (Sandbox Code Playgroud)

c# testing wpf user-controls

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