【发布时间】:2016-09-29 10:53:04
【问题描述】:
例如我有依赖:
public interface IMyDependency
{
}
public class MyDependency : IMyDependency
{
}
在 MyClass 对象中注入:
public interface IMyInterface
{
}
public class MyClass : IMyInterface
{
[Dependency]
public IMyDependency MyDependency { get; set; }
}
我还有一个工厂,它创建 MyClass 实例:
public interface IFactory
{
IMyInterface CreateMyObject();
}
public class Factory : IFactory
{
public IMyInterface CreateMyObject()
{
// some checks before creation
// for. ex check if this type of object supported by OS and thow exception if not
return new MyClass();
}
}
...
container.RegisterType<IFactory, Factory>();
如果我使用“new”关键字创建 MyClass 实例,我的依赖项将无法解析。或者我应该逃离工厂并将逻辑移动到 MyClass 的构造函数中?并在容器中注册后,如 container.RegisterType()?
【问题讨论】:
标签: c# unity-container