小编Mat*_*att的帖子

在HttpHandler中使用IoC的Construtor/Setter Injection,是否可能?

我遇到了一个相当毛茸茸的问题.可能有一个简单的解决方案,但我找不到它!

我有一个自定义HttpHandler,我想处理一个请求,记录某些信息,然后在数据库中输入详细信息.我正在使用NUnit和Castle Windsor.

所以我有两个接口; 一个用于记录另一个用于数据输入,这是构造函数注入的.我很快发现没有办法调用构造函数,因为总是调用默认的无参数构造函数.

所以我想我会使用Setter注射器让Castle windsor对它进行排序.这实际上就像我使用时一样,container.Resolve<CustomHttpHandler>();我可以检查记录器是否为空.(在Global.asax.cs中的Application_Start中)

问题是虽然Castle Windsor可以创建http应用程序没有使用它的实例??? 我认为??

基本上这样做的全部原因是能够通过模拟和单元测试单独测试记录器和数据存储库代码.

我有什么想法可以解决这个问题?

谢谢!

dependency-injection castle-windsor mocking httphandler ioc-container

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

.Net DateTime到DOS日期32位转换

我需要从32位Dos日期转换为.NET System.DateTime并再次返回.我正在使用下面的两个例程,但是当我来回转换它们时,它们会在几秒钟内完成.谁能明白为什么?

public static DateTime ToDateTime(this int dosDateTime)
{
    var date = (dosDateTime & 0xFFFF0000) >> 16;
    var time = (dosDateTime & 0x0000FFFF);

    var year = (date >> 9) + 1980;
    var month = (date & 0x01e0) >> 5;
    var day =  date & 0x1F;
    var hour = time >> 11;
    var minute = (time & 0x07e0) >> 5;
    var second = (time & 0x1F) * 2;

    return new DateTime((int)year, (int)month, (int)day, (int)hour, (int)minute, (int)second);
}

public static int ToDOSDate(this …
Run Code Online (Sandbox Code Playgroud)

.net datetime bit-manipulation dos type-conversion

4
推荐指数
1
解决办法
1279
查看次数

WCAT对所有请求返回400个错误请求?

我在IIS论坛中发布了这个,但没有回复.所以我想我会试试这里.

我之前使用的是WCAT 5.2并且运行正常.我正在尝试在本地计算机上运行客户端和服务器以及IIS 7.由于某种原因我请求的每个网址状态总是400(错误请求)当我查看htterr日志时,原因是主机名???

来自httperr日志:

#Fields: date time c-ip c-port s-ip s-port cs-version cs-method cs-uri sc-status s-siteid s-reason s-queuename 2010-10-06 04:02:15 127.0.0.1 43252 127.0.0.1 80 HTTP/1.1 GET /ds/test.html 400 - Hostname -

Exe命令

wcat.wsf -terminate -run -t uad.ubr -f settings.ubr -singleip -x
Run Code Online (Sandbox Code Playgroud)

Settings.ubr

settings
{

    clientfile     = "uad.ubr";
    server         = "localhost";
    clients        = 1;
    virtualclients = 10;

    counters
    {
        interval = 10;

        counter = "Processor(_Total)\\% Processor Time";
        counter = "Processor(_Total)\\% Privileged Time";
        counter = "Processor(_Total)\\% User Time";
        counter = "Processor(_Total)\\Interrupts/sec"; …
Run Code Online (Sandbox Code Playgroud)

iis-7 wcat

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