小编Saw*_*wan的帖子

将对象映射到字典,反之亦然

是否有任何优雅的快速方法将对象映射到字典,反之亦然?

例:

IDictionary<string,object> a = new Dictionary<string,object>();
a["Id"]=1;
a["Name"]="Ahmad";
// .....
Run Code Online (Sandbox Code Playgroud)

SomeClass b = new SomeClass();
b.Id=1;
b.Name="Ahmad";
// ..........
Run Code Online (Sandbox Code Playgroud)

.net c# mapping dictionary idictionary

79
推荐指数
7
解决办法
9万
查看次数

通过Lazy <T>或任何lambda表达式访问非静态成员

我有这个代码:

public class MyClass
{
    public int X { get; set; }
    public int Y { get; set; }

    private Lazy<int> lazyGetSum = new Lazy<int>(new Func<int>(() => X + Y));
    public int Sum{ get { return lazyGetSum.Value; } }

}
Run Code Online (Sandbox Code Playgroud)

给我这个错误:

字段初始值设定项不能引用非静态字段,方法或属性.

我认为通过懒惰访问非静态成员是非常合理的,怎么做?

*编辑*

接受的答案完美地解决了这个问题,但是要看到问题的详细和深入 - 总是原因,你可以阅读Joh Skeet的答案.

.net c# .net-4.0 lazy-evaluation

47
推荐指数
2
解决办法
9288
查看次数

点击一次更新后重启WPF应用程序(启动新版本)

如何使用click-once更新WPF应用程序,我需要启动新版本!

c# deployment wpf clickonce

20
推荐指数
2
解决办法
9372
查看次数

使用ASP.NET MVC处理/接收来自WebRTC的实时视频网络摄像头流或任何基于浏览器的捕获机制到服务器

我们需要从WebRTC(或客户端网络摄像头的任何其他捕获机制)捕获实时视频流,即使它不是在所有浏览器上都支持,而是作为PoC支持.

这个实时视频需要由服务器组件(ASP.Net MVC/Web API)处理,我想服务器上的代码看起来像:

[HttpPost]
public ActionResult HandleVideoStream(Stream videoStream)
{
      //Handle the live stream
}
Run Code Online (Sandbox Code Playgroud)

寻找任何关键字或有用的链接.

我们已经实现了一种使用base64 jpg发送单个帧的方法,但这根本没用,因为base64编码有很大的开销,因为我们可以使用任何视频编码来更有效地发送视频(发送差异)在使用VPx -vp8-的帧之间,所需的解决方案需要从客户端的网络摄像头捕获视频并将其作为流 - 或数据块实时(未记录)发送到服务器(asp.net)代表新的视频数据.

c# asp.net asp.net-mvc webrtc asp.net-web-api

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

编辑其他用户的注册表项

如何更改或编辑当前用户以外的其他用户的注册表值?我知道其他用户的凭据.

.net c# registry

13
推荐指数
2
解决办法
8566
查看次数

读取内存映射文件或内存映射视图访问器的所有内容,而不知道它的大小

我需要类似于ReadToEnd或ReadAllBytes的东西来使用MappedViewAccessor读取MemoryMappedFile的所有内容,如果我不知道它的大小,我该怎么办呢?

我已经搜索过了,我已经看到了这个问题,但这不是我要找的东西:

如何从.NET中的内存映射文件中快速读取字节?

编辑:

有一个问题,(int)stream.Length没有给我正确的长度,而是给出了内部缓冲区的大小!我需要刷新这个问题,因为它非常紧迫.

.net c# ipc accessor memory-mapped-files

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

从大型数据集从sql server迁移到sqlite的最快方法

我有一个拥有超过3200万条记录的数据库,我必须将它从SQL Server迁移到Sqlite.

我在本文的帮助下尝试了SSIS(SQL Server Integration Services) http://dbauman.blogspot.com/2009/03/connecting-to-sqlite-through-ssis.html

但是这个过程非常慢,我该如何迁移这些数据呢?

.net c# sql-server sqlite data-migration

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

由于在另一个线程中创建了ReportViewr,因此在Windows布局发生变化时,在非常复杂的WPF应用程序中挂起未知位置

我有一个非常复杂的XAMLs WPF应用程序,我需要一种方法来知道我的应用程序挂起,当我尝试暂停执行点,应用程序似乎不能挂,指针会在这一行:

System.Windows.Application myApp;
.
.
.
.
myApp.Run(); // <== this line
Run Code Online (Sandbox Code Playgroud)

当我改变了任务栏的布局,或者当Windows资源管理器崩溃(任务栏是隐藏的),如果我在重重复做这些改动之后,应用程序将永远无法恢复,但是当小改完成后,应用程序这是发生会在几分钟后恢复,我需要知道这个问题的原因,我怀疑我的应用程序的复杂XAML,但我需要一种方法来了解页面或组件,或者这个挂起的来源.

*编辑*

我需要一种工具或方法来了解消耗调度时间的XAML是什么!

*编辑*

我有窍门的确切原因,那是因为在另一个线程创建的ReportViewer的一个实例,当我删除了实例的创建的,它的工作完美,很奇怪的,这个错误在我的应用程序很长一段时间存在以前,但最近提出了挂起,我的意思是:当我在我的应用程序的任何位置插入其中一个代码时,我的应用程序将挂起:

        new Action(() =>
        {
            ReportViewer rv = new ReportViewer();
        }).BeginInvoke(null, null);
Run Code Online (Sandbox Code Playgroud)

要么

        new Action(() =>
        {
            ReportViewer rv = new ReportViewer();
            rv.Dispose();
        }).BeginInvoke(null, null);
Run Code Online (Sandbox Code Playgroud)

要么

        new Action(() =>
        {
            ReportViewer rv = new ReportViewer();
            rv.LocalReport.ReleaseSandboxAppDomain();
            rv.Dispose();
        }).BeginInvoke(null, null);
Run Code Online (Sandbox Code Playgroud)

我的问题:

1-更改窗口布局(调整任务栏大小或移动它)与未添加到任何可视树的报表查看器之间的关系是什么,为什么这会导致我的应用程序挂起?

2-我如何确定挂机的位置?

3-有时候应用程序会在几分钟内恢复(3-5),但有时会挂起几个小时并且应用程序无法恢复,为什么?

4-在这种情况下,如何确定导致应用程序挂起的组件或配置?

顺便说一下,如果解决这个问题,这对其他人来说非常有用,我们花了很多时间来检测它,但没有得到导致挂起的ReportViewer的确切原因!

.net c# wpf reportviewer hang

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

如何检查内存映射文件是否存在?

我需要一种方法来检查某些MMF(内存映射文件)是否存在,然后才能以托管方式访问它.

.net c# ipc visual-studio-2010 memory-mapped-files

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

在执行卸载之前停止Windows服务

我有一个安装程序,安装了一些组件,包括Windows服务,安装后它将启动使用CustomAction安装到系统上的服务.

卸载应用程序时出现问题,安装程序要求在继续之前关闭应用程序.

错误对话框

我创建了一个停止服务的自定义操作,我使用卸载操作安排了它.

但是在手动停止服务后按下确定错误对话框之前,它才会执行.

它在Win7上失败,但我在WinXP上测试了相同的MSI并且工作正常(在检查文件正在使用之前执行自定义操作)!

我正在使用VS2010安装项目来创建安装程序,但是在构建之后我没有修改它(例如使用Orca)的问题.

以下是InstallExecuteSequence表的内容:

在此输入图像描述

我发现InstallValidate操作检查使用中的文件,但是我无法对我之前停止服务的自定义操作进行排序,因为它之前的InstallInitialize操作需要所有自定义操作都在它之后(ICE77 Evaluator)

如果在InstallInitialize操作之前或InstallFinalize操作之后对脚本内自定义操作进行了排序,则ICE77会发出错误.

我该怎么办,我应该使用MSIRESTARTMANAGERCONTROL属性来指定Windows Installer程序包是否使用FilesInUse对话框功能,但我需要通知用户其他正在使用的文件.

windows-installer custom-action orca

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