【金沙澳门官网】用法总结,使用计算

作者: 网络编程  发布:2019-10-19

现在开始使用mvc5案例。

别的如使用配置文件、使用其他方法注入等详细操作,可以参考这篇博文:

这样就完成了一个最简单的控制台Demo。

 

运行后访问Demo方法,即可看到效果。

金沙澳门官网 1

autofac作为一个热门ioc框架,还是有了解一下的必要的。这里用两个小案例来简单说说autofac在.net framework控制台应用程序和asp.net mvc5 项目中的使用。

namespace IBLL
{
    public interface IUserService
    {
        string Hello();
    }

}

using IBLL;

namespace BLL
{
    public class UserService:IUserService
    {
        public string Hello()
        {
            return "hello";
        }
    }
}

BLL存放Demo.cs

 

unity官方文档:

 

这样就完成了一个最简单的mvc demo。

首先nuget安装autofac,新建IDemo接口

using System.Web.Mvc;
using IBLL;

namespace WebApp.Controllers
{
    public class HomeController : Controller
    {
        private IUserService UserService;public HomeController(IUserService userService)
        {
            this.UserService = userService;   //使用构造函数注入
        }

        public ActionResult Index()
        {
            string str = UserService.Hello();
            return Content(str);
        }

    }
}
namespace AutuFacDemo
{
    public class Demo :IDemo
    {
        public string Hello()
        {
            return "hello";
        }
    }
}

4:在Global.asax.cs里填写配置。示例如下:

using Autofac;
using System;

namespace AutuFacDemo
{
    class Program
    {
        private static IContainer Container { set; get; }

        static void Main(string[] args)
        {
            var builder = new ContainerBuilder();
            builder.RegisterType<Demo>().As<IDemo>();
            Container = builder.Build();

            using (var scope = Container.BeginLifetimeScope())
            {
                var demo = scope.Resolve<IDemo>();
                Console.WriteLine(demo.Hello());
                Console.ReadKey();
            }
        }
    }
}

 

using Autofac;
using Autofac.Integration.Mvc;
using BLL;
using IBLL;
using System.Web.Http;
using System.Web.Mvc;
using System.Web.Optimization;
using System.Web.Routing;

namespace WebDemo
{
    public class WebApiApplication : System.Web.HttpApplication
    {
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();
            GlobalConfiguration.Configure(WebApiConfig.Register);
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);


            var builder = new ContainerBuilder();
            builder.RegisterControllers(typeof(WebApiApplication).Assembly);

            builder.RegisterType<Demo>().As<IDemo>();

            var container = builder.Build();
            DependencyResolver.SetResolver(new AutofacDependencyResolver(container));
        }
    }
}

5、在Control中获得UserService类并使用

Global.asax.cs配置autofac:

using System.Web.Mvc;
using System.Web.Optimization;
using System.Web.Routing;
using BLL;
using IBLL;
using Unity;
using Unity.AspNet.Mvc;

namespace WebApp
{
    public class MvcApplication : System.Web.HttpApplication
    {
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);

            var container = BuildUnityContainer();        //自定义BuildUnityContainer方法,获取容器
            DependencyResolver.SetResolver(new UnityDependencyResolver(container));

        }

        IUnityContainer BuildUnityContainer()
        {
            UnityContainer container = new UnityContainer();
            container.RegisterType<IUserService, UserService>();return container;
        }
    }
}

本文由金沙澳门官网发布于网络编程,转载请注明出处:【金沙澳门官网】用法总结,使用计算

关键词: 金沙澳门官网

上一篇:调用Java开发步骤详解
下一篇:没有了