【发布时间】:2016-06-20 07:21:46
【问题描述】:
WCF Autofac Container (IContainer) 如何在非 WCF 项目类中使用?
将 Autofac 添加到服务项目(在下面的示例中)是唯一的解决方案,或者是否有任何其他优雅的方式来实现这一点。
将服务作为参数传递是不可行的
任何帮助将不胜感激。
Wcf 服务项目(使用 Autofac WCF)
public class DiscountWCFService
{
public IDiscountService service {get; set;}
}
服务项目
public class DiscountService : IDiscountService
{
public IDiscountRepository repository {get; set;}
}
public static class DiscountExtension
{
public static IDiscountProcessor GetProcessor(this Discount discount)
{
if(discount.Type=1) return TypeAProcessor();
if(discount.Type=2) return TypeBProcessor();
return null;
}
}
public class TypeAProcessor : IDiscountProcessor
{
// Is it possible to use Autofac?
// E.G. IService fooService = AutofacContainer.Resolve<IFooService>
}
public class TypeBProcessor : IDiscountProcessor
{
}
实体项目
public class Discount
{
}
【问题讨论】:
标签: c# wcf autofac factory-pattern n-tier-architecture