小编Mic*_*hel的帖子

如何在没有全局静态服务(非服务定位器解决方案)的情况下实现IOC?

我们想使用Unity for IOC.我所看到的是有一个全局静态服务(我们称之为IOCService)的实现,它包含对Unity容器的引用,该容器注册所有接口/类组合,每个类都询问该对象:给我一个实现为Ithis或IThat.

我经常看到这种模式不好的响应,因为它导致从ALL类到IOCService的依赖(而不是Unity容器,因为它只在IOCService内部知道).

但我经常看不到的是:替代方式是什么?

米歇尔

编辑:发现全局静态服务被称为服务定位器,将其添加到标题中.

c# ioc-container inversion-of-control unity-container

30
推荐指数
3
解决办法
7174
查看次数

为什么Xdocument给我一个utf16声明?

我正在创建一个这样的XDocument:

XDocument doc = new XDocument(
new XDeclaration("1.0", "utf-8", "yes"));
Run Code Online (Sandbox Code Playgroud)

当我像这样(doc.Save(@"c:\tijd\file2.xml");)保存文档时,我得到这个:

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
Run Code Online (Sandbox Code Playgroud)

没关系.

但我想将内容作为xml返回,我发现以下代码:

 var wr = new StringWriter(); 
            doc.Save(wr); 
            string s = (wr.GetStringBuilder().ToString());
Run Code Online (Sandbox Code Playgroud)

这段代码有效,但字符串'''以这个开头:

<?xml version="1.0" encoding="utf-16" standalone="yes"?>
Run Code Online (Sandbox Code Playgroud)

所以它从utf8变为utf16,这不是我想要的,因为现在我无法在Internet Explorer中阅读它.

有没有办法防止这种行为?

c# linq-to-xml

30
推荐指数
1
解决办法
6259
查看次数

智能方式生成唯一的随机数

我想生成一系列在00000001到99999999范围内的唯一随机数.

所以第一个可能是00001010,第二个可能是40002928等.

简单的方法是生成一个随机数并将其存储在数据库中,并且每次下次再次执行它并检查数据库中是否已存在该数字,如果存在,则生成一个新数据,再次检查等等.但是看起来不对,如果生成的项目数量很大,我可以重新生成一个数字,可能是100次.

有更聪明的方法吗?

编辑总是我忘记说为什么我想要这个,它可能会让事情更清楚,也许可以得到另一种选择,它是:我们想要为预订生成订单号,所以我们可以使用000001,000002等.但是我们不想让竞争对手知道创造了多少订单(因为它不是一个大批量的市场,我们不希望他们知道我们是在2个月后订购30还是订单100.所以我们想要一个随机的订单号(但却是唯一的)

c# random

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

resharper'更新源文件'不会停止(在Visual Studio 2015中)

当我在Visual Studio中打开一个项目(在本例中为2015)时,在Visual Studio的右下角会弹出一个小小的进展"东西".

在此输入图像描述

AFAIK是Resharper为其intellisense更新所有程序集.通常它会在几秒钟后停止,有时在大型项目上停止20秒.

现在在这个解决方案上,从现在开始,它不会停止!

所以它从正确的站点开始变小,向左增长,然后又重新开始......(我等待的最长时间是30分钟).

在那个时候,电脑很慢而且R#在VS中不起作用.

已经重新启动VS和电脑,但这没有帮助.

它只适用于1种解决方案,而不适用于其他解决方案.当我双击它(我之前不知道我可以做)时,它显示,非常短,一个小窗口它正在处理什么文件并显示文件名

在此输入图像描述

(angular.js)甚至在这个解决方案中都没有(为了完整,它在另一个解决方案中,但它位于此解决方案之外的单独目录中.).

我真的没有线索......

编辑

我在我的visual studio .suo文件中找到了这个解决方案:C:\ cv\Dev\Dev.2.1\Frontend\js\angular\directives\userAccessDirective.js(该文件部分是二进制的,所以我可以'我只是删除它我猜)所以我删除了suo文件,VS重新创建它....使用相同的文件名!(并且userAccessDirective.js使用'angular'术语,我不知道它是否与它有关,但是这个引用在这个解决方案的suo文件中很奇怪)

编辑2

从suo文件中删除了文件名,没有什么区别

resharper visual-studio-2015

27
推荐指数
3
解决办法
7027
查看次数

在它变得难看之前,我可以在Sql server表中存储多少条记录?

我被要求为新系统做一些性能测试.它只是与一些客户端一起运行,但随着它们的增长,这些是我为我的测试工作的数字:

200个客户端,4年的数据,以及每5分钟的数据变化.所以每个客户每5分钟就有1条记录.这意味着每个客户每年365*24*12 = 105.000条记录,这意味着我的测试有80万条记录.它有一个FK到另一个表,一个PK(uniqueidentifier)和一个clientID上的索引.

这是SqlServer笑的事情,因为它并没有吓到他,这对于一个四核8 GB机器来说太过分了,这是在边缘,还是......

有没有人对这些数字有任何经验?

sql sql-server sql-server-2008

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

如何对邮件发送功能进行单元测试

我有一个创建报告并将其发送给用户的功能.我所做的是为电子邮件功能创建一个模拟器,并验证是否调用了电子邮件类的"发送"功能.

所以现在我知道函数被调用了,但是如何对Send()函数的主体进行单元测试呢?如何证明主题和正文是正确的并且附件附在电子邮件中?

c# unit-testing mocking

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

Jquery的'fadein'慢'太快了

我正在使用jquery fadein fadeout和慢速选项,但它对我来说仍然有点太快了.现在我已经读过你只能在快速和慢速之间做出选择,但有没有办法让它变慢?

jquery

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

该属性的作用是什么:MethodImplOptions.NoInlining(或者:'inlining'方法是什么)

可能重复:
C#中的内联函数?
什么是内联方法?

我一直在调试代码,问题的"可能"来源是一个用这段代码标记的函数:

[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
protected virtual void PropertyHasChanged()
Run Code Online (Sandbox Code Playgroud)

阅读MSDN说明:指定无法内联该方法.

但是什么是'内联'方法?

编辑:

为了澄清:在PropertyHasChanged()每个属性的SET方法中调用该方法,并更新(添加1)内部对象计数器.当该计数器> 0时,该对象被标记为"脏",并在调用Save时保存到数据库中.当counter = 0时,对象将不会保存到数据库中.现在我已经知道这个代码有时候没有执行(计数器没有增加)所以对象不会被保存到数据库中,

c#

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

何时在EF代码首次迁移方案中调用Seed方法?

我是一个项目的新手,这个类有种子数据:

 internal sealed class Configuration : DbMigrationsConfiguration<DAL.Context>
    {
        public Configuration()
        {
            AutomaticMigrationsEnabled = true;
        }
Run Code Online (Sandbox Code Playgroud)

这个代码启动种子:

protected override void Seed(Context context)
    {
        try
        {
Run Code Online (Sandbox Code Playgroud)

我的问题是:什么时候Seed调用方法?仅当用户执行update-database并且用户没有数据库(基本上是新用户)时,或者当具有现有数据库的用户调用时update-database

entity-framework entity-framework-6

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

javascript:将函数作为参数传递给另一个函数,代码以另一个顺序调用然后我期望

我想将一个函数作为参数传递给另一个函数.

我想这样做,因为后一个函数调用异步Jquery方法和AFTER返回结果,我想要执行一些javascript代码.

并且因为从多个地方调用此函数,我希望代码在函数中传递(在执行异步Jquery代码之后).说得通?我希望 :)

现在看到的是代码执行的顺序不是我想要的.我已将代码简化为此代码:

$('#AddThirdParty').click(function() {
    var func = new function() {
        alert('1');
        alert('2');
        alert('3');
    }
    alert('4');
    LoadHtml(func);
    alert('5');
});
function LoadHtml(funcToExecute) {
    //load some async content
    funcToExecute;
}
Run Code Online (Sandbox Code Playgroud)

现在我想要实现的(或者至少我认为会发生的事情)是alert4会触发,然后loadhtml将触发alert1,alert2和alert3,然后代码将返回alert5.

但是会发生什么:alert1,alert2,alert3,alert4,alert5.

有谁知道我做错了什么以及为什么这是执行代码的顺序?

看起来我在定义时会执行alert1..alert3 new function(),但是当我从LoadHtml函数中调用它时,它为什么不执行呢?

javascript jquery

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