小编Erw*_*yer的帖子

如何在WPF应用程序中将RichTextBox用作NLog目标?

我阅读了以下帖子但是没有帮助我们像在Winforms中那样有效地将日志从NLog打印到RichTextBox控件目标上.

如何在WPF应用程序中使用NLog的RichTextBox Target?

WPF:将RichTextBox绑定到记录器输出

我也浏览了官方论坛,但没有成功(除了建议阅读上述两篇文章).

想法是将目标添加为:

<target xsi:type="RichTextBox" name="console"
     layout="${longdate:useUTC=true}|${level:uppercase=true}|${logger}::${message}"
     autoScroll="true"
     maxLines="1000000"
     controlName="rtbConsole"
     formName="MyWPFWindowName"
     useDefaultRowColoringRules="true">
</target>
Run Code Online (Sandbox Code Playgroud)

在具有MyWPFWindowName作为名称的WPF窗口中,使用rtbConsole添加RichTextBox控件.即使我在加载winow后以编程方式创建目标,它也不会使用现有的rtbConsole,而是创建一个新表单.

所以,感谢您的帮助!

.net wpf nlog richtextbox target

7
推荐指数
3
解决办法
5654
查看次数

如何在ServiceStack.OrmLite中自定义复杂类型的序列化/反序列化

我正在使用ServiceStack.OrmLite将数据保存在SQLite数据库中,并且到目前为止对此非常满意.

但是,我的许多对象都具有复杂类型的属性,我不想将其序列化使用JSV.

我需要能够指定应该用于在数据库中存储属性的自定义序列化/反序列化(作为字符串).在db4o世界上,这相当于使用由提供的翻译功能IObjectConstructor.

无法正确序列化和反序列化的复杂类型的一个很好的例子是NodaTime类型,即使它们可以很容易地映射到字符串(我已经拥有了我使用的序列化/反序列化函数db4o).

实现这一目标的最简单方法是什么?包装器不是很方便,因为我必须为包含这种复杂类型属性的每种类型编写和维护一个包装器.

c# servicestack nodatime ormlite-servicestack servicestack-text

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

内存映射文件IList实现,用于在内存中存储大型数据集?

我需要按照IList实现的巨大时间序列按时间顺序执行操作.数据最终存储在数据库中,但向数据库提交数以千万计的查询是没有意义的.

目前,内存中的IList在尝试存储超过800万(小)对象时会触发OutOfMemory异常,但我需要处理数千万.

经过一些研究,看起来最好的方法是将数据存储在磁盘上并通过IList包装器访问它.

内存映射文件(在.NET 4.0中引入)似乎是正确的接口,但我想知道编写应该实现IList(以便于访问)和内部处理内存映射文件的类的最佳方法是什么.

如果您了解其他方式,我也很想知道!我想过使用来自db4o的数据的IList包装器的例子(这里有人提到使用内存映射文件作为IoAdapterFile,尽管使用db4o可能会增加性能成本而不是直接处理内存映射文件).

我在2009年遇到过这个问题,但它没有产生有用的答案或认真的想法.

.net c# collections memory-management memory-mapped-files

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

如果从静态构造函数启动并等待,为什么空的.NET任务不会完成?

我无法理解为什么以下代码不起作用:

var task = new Task(() => { });
task.Start();
if (task.Wait(10000))
{
   logger.Info("Works");
}
else
{  
   logger.Info("Doesn't work");
}
Run Code Online (Sandbox Code Playgroud)

超时到期后,任务状态停留在"正在运行",尽管没有任何事情要做.更换task.Start()task.RunSynchronously()但是会工作.

有没有人知道我可能做错了什么?

可以在此处找到复制该问题的测试项目:http://erwinmayer.com/dl/TaskTestProject.zip.据我所知,如果具有上述代码的方法在静态构造函数中运行,则它不起作用.但是如果直接作为静态类方法调用它就可以工作.

最近这篇MSDN博客文章似乎突出了静态构造函数的相关问题:http://blogs.msdn.com/b/pfxteam/archive/2011/05/03/10159682.aspx

.net c# wpf asynchronous task-parallel-library

6
推荐指数
2
解决办法
3466
查看次数

为什么不使用 Linq 优化 IReadOnlyList?

使用分析,我发现,当调用LINQ的扩展方法.Last()上的实现IReadOnlyListGetEnumerator()并且MoveNext()将被调用,直到集合的结尾,而不是使用与O(1)复杂性的指标。对于IList,没有这样的问题,因为扩展方法使用可用索引(参见此处的反射器代码)。

似乎 Linq 需要更新才能IReadOnlyListIList.

同时,实现 O(1) 复杂度的唯一方法是确保Last()在我的类中显式实现,以便不使用 Linq 扩展方法。

c# linq collections complexity-theory interface

6
推荐指数
0
解决办法
1419
查看次数

如何将Noda Time(或任何第三方类型)对象作为参数传递给WCF?

我有一个在OperationContract参数中使用Noda Time类型(LocalDateZonedDateTime)的服务,但是当我尝试发送时,例如LocalDate(1990,7,31)服务器收到一个具有默认值(1970/1/1)的对象.客户端或服务器不会引发任何错误.

以前它适用于相应的BCL类型(DateTimeOffset).我理解NCF时间类型可能不会被WCF"知道",但我看不出我应该如何添加它们.我在关于已知类型的文档中检查了此页面,但它没有帮助.

有没有办法做到这一点,以避免从BCL类型到BCL类型的手动转换/序列化(可能不完整)?

谢谢.

c# service wcf date nodatime

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

对于嵌套的Select with index,ImmutableArray <>的行为与Array <>不同

我遇到了一个似乎非常奇怪的错误ImmutableArray<>(使用BCL Immutable集合v1.0.12.0,运行时.NET 4.5):

我在同一名称空间下的同一源文件中完全具有以下两个相同的结构:

public struct WeightedComponent {
    public readonly IComponent Component;
    public readonly decimal Weight;

    public WeightedComponent(IComponent component, decimal weight) {
        this.Component = component;
        this.Weight = weight;
    }
}

public struct WeightedComponent2 {
    public readonly IComponent Component;
    public readonly decimal Weight;

    public WeightedComponent2(IComponent component, decimal weight) {
        this.Component = component;
        this.Weight = weight;
    }
}
Run Code Online (Sandbox Code Playgroud)

以下将抛出异常:

var elements1 = new[] { 1, 2, 3 }.Select(wc => new WeightedComponent(null, 0)).ToImmutableArray();
var foo = elements1.Select((e1, i1) => elements1.Select((e2, i2) …
Run Code Online (Sandbox Code Playgroud)

c# linq immutability base-class-library

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

如何在Pycharm中暂停程序执行(暂停按钮不起作用)?

在 Pycharm 5.0.4 中调试我的 Python 3.5 程序时,我试图按下暂停按钮来查找程序挂起的原因/位置(可以在 Visual Studio 中完成)。

但是,什么也没有发生:暂停按钮不会变成灰色,恢复按钮保持灰色,并且在调试器工具窗口中显示“框架不可用”。

我在 Linux 和 Windows 上尝试了不同的基本程序,但没有成功。

这是一个错误还是我错过了 Pycharm 调试应该如何工作的某些内容?

我还注意到,当遇到断点时,只有一个线程被挂起,我看不出有什么办法可以挂起其他线程来检查它们的堆栈帧。我也有兴趣知道如何实现这种特定于线程的暂停。

python debugging multithreading suspend pycharm

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

我可以使用大括号初始化BCL不可变集合吗?

在过去,我们可以使用大括号方便地初始化可变集合,如下例所示:

var myDictionary = new Dictionary<string, decimal> {{"hello", 0m}, {"world", 1m}};
Run Code Online (Sandbox Code Playgroud)

是否有类似的语法可以与BCL不可变集合一起使用?我知道它仍然是预发布版但可能有推荐的语法,或者至少这个问题将作为实现这些方便的初始化器的反馈.

与此同时,我发现的最短时间如下:

var myDictionary = new Dictionary<string, decimal> {{"hello", 0m}, {"world", 1m}}.ToImmutableDictionary();
Run Code Online (Sandbox Code Playgroud)

c# collections initialization immutability base-class-library

5
推荐指数
1
解决办法
748
查看次数

什么是JSON.NET转换器的ServiceStack.Text等价物,例如当应用于NodaTime类型时?

如何NodaTime.LocalDateTime使用ServiceStack.Text 控制自定义类型(例如)的序列化/反序列化?

Json.NET Converters 为此提供了这一功能,因此每次类包含自定义类型时,都将使用相应的自定义序列化器/反序列化器.例如,可以使用自定义方法将字符串NodaTime.LocalDateTime的属性转换为字符串.

在db4o中,IObjectConstructor将作为类似的转换层在保持类型之前将类型转换为另一个类型(LocalDateTime可以转换为DateTime).

c# serialization servicestack nodatime servicestack-text

5
推荐指数
1
解决办法
308
查看次数