我们想使用Unity for IOC.我所看到的是有一个全局静态服务(我们称之为IOCService)的实现,它包含对Unity容器的引用,该容器注册所有接口/类组合,每个类都询问该对象:给我一个实现为Ithis或IThat.
我经常看到这种模式不好的响应,因为它导致从ALL类到IOCService的依赖(而不是Unity容器,因为它只在IOCService内部知道).
但我经常看不到的是:替代方式是什么?
米歇尔
编辑:发现全局静态服务被称为服务定位器,将其添加到标题中.
我正在创建一个这样的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中阅读它.
有没有办法防止这种行为?
我想生成一系列在00000001到99999999范围内的唯一随机数.
所以第一个可能是00001010,第二个可能是40002928等.
简单的方法是生成一个随机数并将其存储在数据库中,并且每次下次再次执行它并检查数据库中是否已存在该数字,如果存在,则生成一个新数据,再次检查等等.但是看起来不对,如果生成的项目数量很大,我可以重新生成一个数字,可能是100次.
有更聪明的方法吗?
编辑总是我忘记说为什么我想要这个,它可能会让事情更清楚,也许可以得到另一种选择,它是:我们想要为预订生成订单号,所以我们可以使用000001,000002等.但是我们不想让竞争对手知道创造了多少订单(因为它不是一个大批量的市场,我们不希望他们知道我们是在2个月后订购30还是订单100.所以我们想要一个随机的订单号(但却是唯一的)
当我在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文件中删除了文件名,没有什么区别
我被要求为新系统做一些性能测试.它只是与一些客户端一起运行,但随着它们的增长,这些是我为我的测试工作的数字:
200个客户端,4年的数据,以及每5分钟的数据变化.所以每个客户每5分钟就有1条记录.这意味着每个客户每年365*24*12 = 105.000条记录,这意味着我的测试有80万条记录.它有一个FK到另一个表,一个PK(uniqueidentifier)和一个clientID上的索引.
这是SqlServer笑的事情,因为它并没有吓到他,这对于一个四核8 GB机器来说太过分了,这是在边缘,还是......
有没有人对这些数字有任何经验?
我有一个创建报告并将其发送给用户的功能.我所做的是为电子邮件功能创建一个模拟器,并验证是否调用了电子邮件类的"发送"功能.
所以现在我知道函数被调用了,但是如何对Send()函数的主体进行单元测试呢?如何证明主题和正文是正确的并且附件附在电子邮件中?
我正在使用jquery fadein fadeout和慢速选项,但它对我来说仍然有点太快了.现在我已经读过你只能在快速和慢速之间做出选择,但有没有办法让它变慢?
我一直在调试代码,问题的"可能"来源是一个用这段代码标记的函数:
[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时,对象将不会保存到数据库中.现在我已经知道这个代码有时候没有执行(计数器没有增加)所以对象不会被保存到数据库中,
我是一个项目的新手,这个类有种子数据:
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?
我想将一个函数作为参数传递给另一个函数.
我想这样做,因为后一个函数调用异步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函数中调用它时,它为什么不执行呢?
c# ×5
jquery ×2
javascript ×1
linq-to-xml ×1
mocking ×1
random ×1
resharper ×1
sql ×1
sql-server ×1
unit-testing ×1