【发布时间】:2012-10-31 19:22:11
【问题描述】:
我正在努力让它发挥作用。
我希望 Autofac 管理我的 WCF 服务并使用无扩展服务。
任何想法为什么这不起作用?
namespace SAIF.Services.WCF.Host
{
using System;
using System.ServiceModel.Activation;
using System.Web;
using System.Web.Routing;
using Autofac;
using Autofac.Integration.Wcf;
using SAIF.Core.Domain;
using SAIF.Core.Domain.Model;
using SAIF.Repositories;
using SAIF.Services.WCF.Core;
using SAIF.Services.WCF.Services;
public class Global : HttpApplication
{
protected void Application_Start(object sender, EventArgs e)
{
// Create Routes
var factory = new AutofacServiceHostFactory();
RouteTable.Routes.Add(new ServiceRoute("FileService", factory, typeof(SAIF.Services.WCF.Core.IFileService)));
RouteTable.Routes.Add(new ServiceRoute("WebContext", factory, typeof(SAIF.Services.WCF.Core.IWebContextService)));
// Autofac Config
var builder = new ContainerBuilder();
builder.Register(x => new EFUnitOfWork())
.As<EFUnitOfWork>()
.As<IUnitOfWork>();
builder.RegisterGeneric(typeof(Repository<>))
.As(typeof(IRepository<>));
builder.Register(x => new FileService())
.As<IFileService>();
builder.Register(x => new WebContextService(x.Resolve<IRepository<WebContextItem>>(), x.Resolve<IUnitOfWork>()))
.As<IWebContextService>();
AutofacHostFactory.Container = builder.Build();
}
}
}
【问题讨论】:
-
你能通过吗?有什么错误吗?最后容器里有什么?
-
单步执行时一切看起来都很好。容器构建,注册在那里,只是代码不起作用!