小编Jus*_*vey的帖子

在javascript中测试字符串是否有时区

我从服务器收到一个字符串形式的日期时间,可能如下所示:

07/08/2012 13:17:32
Run Code Online (Sandbox Code Playgroud)

这是 UTC 时间。

或者它可能具有以下格式的时区:

07/08/2012 13:17:32 UTC+01:00
Run Code Online (Sandbox Code Playgroud)

我需要一种通用方法将其解析为Date要显示的对象。如果我这样做,var d = new Date(str)那么它假设的第一个例子是当地时间。

编辑:字符串中可能并不总是“UTC”,我认为它可能是 GMT、Z 或任何其他时区指示符。

有任何想法吗?

javascript

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

MVC框架如何首先使用DataAnnotations验证代码POCO?

在我的单元测试中,我想强制验证代码首先在其上有DataAnnotations的POCO.

MVC框架必须在幕后进行,基本上我想知道如何,所以我希望能够使用它.

c# asp.net-mvc unit-testing code-first

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

异步WCF方法等待后,WebOperationContext为null

在以下示例中,该方法作为WCF服务操作公开,并且该服务在IIS中承载.在进入函数时,WebOperationContext.Current按预期设置.然而,在await完成等待之后,WebOperationContext.Current被设置为null.

        public async Task TestAsync()
    {
        //WebOperationContext.Current is set

        Task t = new Task(()=>Thread.Sleep(10000));

        t.Start();

        await t;

        //WebOperationContext.Current is null
    }
Run Code Online (Sandbox Code Playgroud)

这似乎是一个缺点,所以我想知道是否有人知道这一点以及是否有任何好的方法.我意识到我可以在局部变量中缓存对conext的引用,但这看起来不太好.

更新

一种有效的方法是

            public async Task TestAsync()
    {
        WebOperationContext ctx = WebOperationContext.Current;

        Task t = new Task(()=>Thread.Sleep(10000));

        t.Start();

        await t;

        //ctx is set        
    }
Run Code Online (Sandbox Code Playgroud)

而且,正如其他人所暗示的那样,我可以做到这一点

        public async Task TestAsync()
    {
        CallContext.LogicalSetData("WebOperationContext.Current", WebOperationContext.Current);

        Task t = new Task(()=>Thread.Sleep(10000));

        t.Start();

        await t;

        WebOperationContext ctx = (WebOperationContext)CallContext.LogicalGetData("WebOperationContext.Current");
    }
Run Code Online (Sandbox Code Playgroud)

每个的性能和线程安全性会产生什么影响?

c# wcf async-await

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