【发布时间】:2014-09-25 19:02:54
【问题描述】:
如何配置 Autofac 容器,以便它根据操作参数(请求对象)的属性值解析 WCF 服务的依赖关系?
例如,给定这个数据合约...
[DataContract]
public class MyRequest
{
[DataMember]
public bool MyBool { get; set; }
}
此 WCF 服务...
public class MyWcfService : IWcfService
{
private IService m_service;
public MyWcfService(IService service)
{
m_service = service;
}
public virtual MyResponse Operation(MyRequest request) { }
}
还有这些依赖...
public interface IService { }
public class TypeA : IService { }
public class TypeB : IService { }
如果 MyBool 等于 true,我希望容器解析 TypeA,否则解析 TypeB。该功能可用吗?我应该以不同的方式解决问题吗?
约束:
- 避免使用 Autofac.Extras.Multitenant 包是一个优点。
-
还需要保持服务构造函数的签名不变。(见下面我的回答)
【问题讨论】: