【发布时间】:2017-09-13 22:46:43
【问题描述】:
是否可以将类型注入构造函数而不是实例? 如果是这样,这是如何实现的?如果可能,我想避免显式注册工厂方法或就地解析实例。
public interface IJob { }
public class TheJob : IJob { }
public interface IService
{
string GetTypeDesc();
}
public class Service : IService
{
private Type _jobType;
public Service(Type jobType)
{
_jobType = jobType;
}
public string GetTypeDesc()
{
return _jobType.ToString();
}
}
似乎即使在使用显式构造函数定义注册类型时,Unity 也希望将实例注入类型占位符。
Type jobType = typeof(TheJob);
(new UnityContainer()).RegisterType<IService, Service>(new InjectionConstructor(jobType));
【问题讨论】:
标签: c# dependency-injection unity-container