说我有这样的组件
public class MyComponent
{
public MyComponent(string name)
{
}
}
Run Code Online (Sandbox Code Playgroud)
我基本上希望在解析它时提供的构造函数参数作为组件标识符的一部分.如果您从未使用该组参数解决它,它将实例化一个新参数.
换句话说,我想以某种方式修改以下测试以成功:
IWindsorContainer container = new WindsorContainer();
container.Register(Component.For<MyComponent>());
MyComponent a1 = container.Resolve<MyComponent>(new { name = "a" });
MyComponent a2 = container.Resolve<MyComponent>(new { name = "a" });
MyComponent b = container.Resolve<MyComponent>(new { name = "b" });
Assert.AreSame(a1, a2);
Assert.AreNotSame(a1, b);
Run Code Online (Sandbox Code Playgroud)
目前它失败了,因为它将使用name = a进行实例化,然后为所有将来的name = a和name = b返回相同的对象.
谢谢!
我收到错误消息
Msg 3623, Level 16, State 1, Line 25
An invalid floating point operation occurred.
Run Code Online (Sandbox Code Playgroud)
从SQL Server 11.0.2100(在AWS RDS实例上)进行以下查询:
SELECT SUM(LOG(col + 1)) FROM MyTable;
Run Code Online (Sandbox Code Playgroud)
col的所有值都在-0.1和0.1的范围内.
如果我从查询中删除SUM,它运行正常,这意味着LOG的输入是正确的:
SELECT LOG(col + 1) FROM MyTable;
Run Code Online (Sandbox Code Playgroud)
另外,如果我选择上面的临时表,然后对临时表中的值进行SUM,这也可以正常工作,这意味着SUM没有任何问题:
SELECT LOG(col + 1) thelog INTO #x FROM MyTable;
SELECT SUM(thelog) FROM #x;
DROP TABLE #x;
Run Code Online (Sandbox Code Playgroud)
只有当我一起运行SUM和LOG时才会出现问题.
为什么会这样?是否有可能SQL Server以某种方式将+1重新排列在LOG之外,以便LOG输入超出范围?
注意:在查询中放置一个CASE WHEN col> -1也可以修复它,但这不应该是必需的,因为col + 1的所有值都在范围内.我想知道这可能是什么原因......
在遇到Erlang崩溃的一些问题之后,我编写了一个程序,它反复调用clock_gettime(CLOCK_MONOTONIC,&ts)并检查它是否会倒退,不幸的是它有时会倒退.
这是我正在使用的测试程序:
#include <time.h>
#include <stdio.h>
#include <stdlib.h>
int main() {
struct timespec ts_start;
struct timespec ts_end;
int i;
clock_gettime(CLOCK_MONOTONIC, &ts_start);
clock_gettime(CLOCK_MONOTONIC, &ts_end);
for(i = 0; i<10000000; i++) {
if(ts_end.tv_sec <= ts_start.tv_sec
&& ts_end.tv_nsec < ts_start.tv_nsec) {
printf("ERROR!\n");
return 1;
}
ts_start.tv_sec = ts_end.tv_sec;
ts_start.tv_nsec = ts_end.tv_nsec;
clock_gettime(CLOCK_MONOTONIC, &ts_end);
}
printf("OK\n");
return 0;
}
Run Code Online (Sandbox Code Playgroud)
在我的Hyper-V VM(内核2.6.18-238.12.1.e15,已尝试其他)上,它偶尔会输出ERROR,但在物理机器上它总是输出OK.
知道为什么CLOCK_MONOTONIC不会单调吗?
我在DynamoDB中有一个表:
Id: int, hash key
Name: string
Run Code Online (Sandbox Code Playgroud)
(还有更多列,但我省略了它们)
通常我只是通过他们的Id拉出并更新项目,这个架构可以正常工作.
但是,其中一个要求是根据名称生成一个自动完成下拉框.我希望能够在此DynamoDB表中查询以查询字符串开头的Name列的所有项目.
解决这个问题的SQL方法是在Name上添加一个索引,然后编写一个像SELECT Id FROM table WHERE Name LIKE'query %'这样的查询,但我无法弄清楚这种方法是否支持DynamoDB.
我考虑了几种方法来解决这个问题:
这个问题有一个简单的解决方案吗?