首页 新闻 会员 周边

Autofac的使用(自定义WebViewPage)

0
悬赏园豆:30 [已关闭问题] 关闭于 2011-12-18 19:39
namespace Mvc3.Web.Framework
{
public abstract class BaseViewPage<TModel> : WebViewPage<TModel> where TModel : class
{
     //默认必须有无参构造函数
public BaseViewPage()
{
CurrentUser = new UserService().CurrentUser;
}
      //我使用Autofac了已经注册了所有的包含"Service"的类型,既然注册过了,为什么还要去 new 一次呢,?
//因此有下面的想法,通过依赖注入来更改默认的行为,从而调用下面的构造函数,但是不知道怎么做。。。

//public BaseViewPage(IUserService userService)
//{
//   CurrentUser = userService.CurrentUser;
//}

        public DUser CurrentUser
{
get;
private set;
}

public override void Execute()
{

}
}

public class BaseViewPage : BaseViewPage<object>
{

}
}

Global文件中deAutofac部分代码如下:

        protected IContainer RegisterDependencies()
{
var builder = new ContainerBuilder();
builder.RegisterControllers(typeof(MvcApplication).Assembly);
builder.RegisterModelBinders(Assembly.GetExecutingAssembly());

builder.RegisterAssemblyTypes(Assembly.GetExecutingAssembly())
.Where(t => t.Name.Contains("Service"))
.AsImplementedInterfaces();

return builder.Build();
}

protected void Application_Start()
{
var container = RegisterDependencies();
DependencyResolver.SetResolver(new AutofacDependencyResolver(container));

ViewEngines.Engines.Insert(0, new WebEngine(container.Resolve<IThemeService>()));

AreaRegistration.RegisterAllAreas();

RegisterGlobalFilters(GlobalFilters.Filters);
RegisterRoutes(RouteTable.Routes);
}


为了实现我第一部分代码中描述的那样,该如何实现呢?

问题补充:

问题不能编辑么?去掉abstract关键字...

还有ConfOrm处理一些特殊的表,比如User、Order表,怎么处理,我没办法了直接把User表换成DUser了。。。。

Kratos Zhang的主页 Kratos Zhang | 初学一级 | 园豆:6
提问于:2011-12-13 17:01
< >
分享
所有回答(1)
0

你这是抽象类,不能实例化的。

悟行 | 园豆:12559 (专家六级) | 2011-12-13 17:08
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册