小编Vit*_*ova的帖子

在XE3中使用自动更新进行实时绑定(无需像在XE2中那样调用Notify())

我目前正在使用Delphi XE2,并听说他们在XE3中使用自动更新进行新的Live Binding(无需像XE2那样调用Notify()).

在C#或Delphi XE2中我们必须实现INotifyPropertyChanged(Notify();在Delphi中),这种方法确实有意义,因为我们可以完全控制要更新的内容以及何时更新它,这样我们就可以轻松调整性能并实现虚拟化.

但我只是想知道它是如何工作的,它们为实现它做了什么样的机制,我不知道它们是如何做到的,以下是可能用于实现自动更新的假设.

  1. 计时器:计时器经常打勾并刷新所有数据

    性能非常慢没有虚拟化

  2. 编译器级别功能:notify() events编译器自动执行的所有相关代码

    很多头脑

  3. 索姆其他方法:

请帮助我确定他们是如何实现它的.

我目前正在使用XE3试用版,因此我无法访问源代码,您的答案将帮助我决定是否切换到新功能.
我有一个类(集合项)有400个属性要绑定(并非所有时间都是这样),所以性能确实在我的应用程序的稳定性中发挥了重要作用.

delphi data-binding virtualization performance delphi-xe3

64
推荐指数
1
解决办法
1755
查看次数

如何仅在一个项目中禁用警告?

我的解决方案中有一个遗留项目没有评论和许多警告.我希望不会看到有关此特定项目的警告,但我希望在同一解决方案中看到其他项目的警告.

可能吗?

编辑:我的意思是具体项目的"所有警告".

c# code-analysis visual-studio-2010

27
推荐指数
2
解决办法
8912
查看次数

为什么Internet Explorer复选框接受双击但只更改状态一次?

在Internet Explorer(任何版本)中,如果您快速单击两次复选框,它只会更改一次.另一个浏览器不这样做.

这是"按设计"还是一种非常奇怪的行为(bug)?

internet-explorer

21
推荐指数
2
解决办法
6253
查看次数

是否有可能像立即一样在C#Interactive(REPL)中自动输出值?

我开始使用C#Interactive,就像我可以浏览和探索一些API功能,就像我一样,Immediate无需运行和调试我的程序.

问题是,除非我使用变量名执行命令,否则它不会像立即那样输出信息:

 > string.Format("{0,15}", 10m);         //hit enter, here there is no output
 > var a = string.Format("{0,15}", 10m); //hit enter so...
 > a                                     // hit enter and...
  "        10"                           //...here the value is shown
 >
Run Code Online (Sandbox Code Playgroud)

有没有办法C# Interactive在每个评估中输出值,就像Immediate那样(并且没有为此编写更多代码Console.Write)?

c# read-eval-print-loop roslyn visual-studio-2015 c#-interactive

18
推荐指数
2
解决办法
2981
查看次数

为什么我不能从扩展方法调用PropertyChanged事件?

我试图编写一个类来避免像"RaisePropertyChanged"这样的方法.我知道我可以从具有该实现的类继承,但在某些情况下我不能.我尝试使用扩展方法,但Visual Studio抱怨.

public static class Extension
{
    public static void RaisePropertyChanged(this INotifyPropertyChanged predicate, string propertyName)
    {
        if (predicate.PropertyChanged != null)
        {
            predicate.PropertyChanged(propertyName, new PropertyChangedEventArgs(propertyName));
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

它说:

"事件' System.ComponentModel.INotifyPropertyChanged.PropertyChanged'只能出现在+ =或 - =的左侧 "

c# wpf extension-methods propertychanged inotifypropertychanged

15
推荐指数
2
解决办法
8442
查看次数

为什么新功能"二进制文字"以0b开头而不是后缀?

下一个C#版本计划(2014年4月)具有二进制文字,如您在Roslyn项目语言功能状态中所见.

该页面中的示例如下:

0b00000100
Run Code Online (Sandbox Code Playgroud)

所以你可能会这样使用:

var myBynaryLiteral = 0b00000100;
Run Code Online (Sandbox Code Playgroud)

我想知道为什么他们选择的这个前缀0b,而不是使用一个字母到最后,他们没有像用double,float,decimal等.

double a = 1d;
float b = 1f;
decimal c = 1m;
Run Code Online (Sandbox Code Playgroud)

c# roslyn c#-6.0

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

为什么http-equiv ="X-UA-Compatible"content ="IE = edge,chrome = 1"未在W3C Validator中验证?

我有:

<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
Run Code Online (Sandbox Code Playgroud)

http://validator.w3.org/验证时出现此错误:

具有http-equiv属性且值为X-UA-Compatible的元元素必须具有值为IE = edge的content属性.

我正在使用.NET/Razor,当然还在本地使用IIS.有没有办法解决这个问题而不编辑任何web.config文件?谢谢你.

html internet-explorer w3c-validation x-ua-compatible

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

如何使用FileReader的异步特性实现进度条和回调

我在for循环中调用了FileReader API来遍历多个文件对象.我正在使用FileReader来显示图像的预览.

function() {
    for (var i in Files) {
        var fileReader = new FileReader();
        fileReader.readAsBinaryString(Files[i]);
        fileReader.onload = function() {

            // do something on FileReader onload

        }

        fileReader.onprogress = function(data) {
            if (data.lengthComputable) {                                            
                var progress = parseInt( ((data.loaded / data.total) * 100), 10 );
                console.log(progress);
            }
        }
    }

    // do something on completion of FileReader process
    // actions here run before completion of FileReader
}
Run Code Online (Sandbox Code Playgroud)

由于FileReader API的异步特性,我遇到了两个问题.首先,onprogress为每个FileReader实例触发事件.这为我提供了每个文件的进度.然而,我打算显示所有文件的总进度而不是单个文件.

其次,我想执行只应在FileReader的所有实例(每个文件一个)完成时执行的操作.目前,由于FileReader是异步运行的,因此操作在FileReader完成任务之前运行.我已经搜索了很多,但却遇到了解决这些问题的方法.任何帮助表示赞赏.

javascript html5 filereader

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

为什么Visual Studio也发布packages.config?

当我Publish...在Visual Studio 2015中使用选项作为目标选择文件系统时,它会编译代码,在Web.config文件中执行XML转换并将文件复制到我指定的文件夹.

*.cs自编译后不会按预期复制任何文件.

我不明白的是它发布Nuget Config文件(packages.config)的原因,毕竟所需的文件已经在bin文件夹中了.

我发现这个问题说明了如何避免但不是他们认为这个文件可以在服务器上使用的原因.

我可以阻止VS发布packages.config吗?

任何人都知道为什么packages.config最终会在发布文件夹中?

visual-studio nuget

9
推荐指数
0
解决办法
962
查看次数

在模拟时调用异步WCF服务

我在服务器上运行WCF服务,该服务器配置为接受Kerberos身份验证.

Kerberos工作正常,因此WCF服务知道哪个用户连接到他.该服务提供一切作为异步方法.就像这里一样(只是一个清晰的例子).

public ExampleService : IExampleService {
    public Task<string> GetUsernameAsync() {
       return await Task.Run(() => System.Threading.Thread.CurrentPrincipal.Name);
    }
}
Run Code Online (Sandbox Code Playgroud)

在客户端,我有一个Controller(它是一个MVC页面,但这没关系),它调用方法异步.

public ExampleController {
    public async Task<ActionResult> Index() {
        using(var serviceClient = ServiceFactory.GetServiceClient())
        using(Security.Impersonation.Impersonate())
        {
            var data = await serviceClient.GetUsernameAsync();
            return View(data);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

只要我不使用等待,模仿就可以正常工作.

由于Task<>没有流出模拟身份,我想知道是否有可能更改执行用户Task或执行任何其他操作以使模拟在此用例中起作用.

我尝试了一个自定义awaiter(因为它可以在那个案例中使用Culture),但这根本不起作用(好吧它也不会冒充).

c# impersonation wcf asynchronous

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