小编sud*_*tti的帖子

Unity.MVC4 lazy <T>在ASP.NET MVC应用程序中不起作用

我正在使用ASP.NET MVC 4应用程序.

家庭控制器的构造函数参数化为2参数(Iservice1 service1,Iservice2 service2)并非所有代码路径都使用任何Service(service1,service2),只在某些代码路径中我需要service1 instance/object或service2 instance/object.

我不想使用container.Resolve < <Lazy<IService1>>();

从这个链接(http://msdn.microsoft.com/en-us/library/dn178463(v=pandp.30).aspx)我明白unity.mvc 4使用unity 3,它具有Lazy loading支持,但是如何在ASP.NET MVC 4中执行此操作.

asp.net-mvc lazy-loading inversion-of-control unity-container deferred-loading

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

Async,Task.Delay和HtmlHelper MVC 4

奇怪的问题

不确定在测试类中执行Task.Delay后线程会发生什么.当它从静态Htmlhelper类调用时,我没有得到任何结果,当我在Task.Delay执行后调试它时,线程没有达到return语句.这是在asp.mvc 4中开发的

查看代码

 <div>
    @Html.Method1().Result.ToString();
 </div>
Run Code Online (Sandbox Code Playgroud)

Html助手

    public static class SomeHtmlHelper
    {
        public static async Task<string> Method1(
           this HtmlHelper htmlHelper)
       {
         Stopwatch stopwatch = new Stopwatch();
         stopwatch.Start();
         var testObj = new test();
         var a = testObj.Service1Async();
         var b = testObj.Service2Async();
         await Task.WhenAll(a,b);
         stopwatch.Stop();
         return "<div>"+stopwatch.Elapsed.ToString()+"</div>";
        }
    }
Run Code Online (Sandbox Code Playgroud)

异步工作

public class test
{

    public async Task<int> Service2Async()
    {
        await Task.Delay(2000);
        return 10;
    }

    public async Task<int> Service1Async()
    {
        await Task.Delay(2000);
        return 10;
    }
}
Run Code Online (Sandbox Code Playgroud)

如果调用来自控制器,则相同的代码(测试类)可以正常工作

public class HomeController : Controller …
Run Code Online (Sandbox Code Playgroud)

multithreading task-parallel-library async-await asp.net-mvc-4

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