Ant*_*kov 6 inheritance dependency-injection unity-container
如何配置Unity,以便从某个基类派生的任何类都将通过为基类定义的注入管道.
public abstract class Base
{
public IDependency Dependency {get;set;}
};
public class Derived1: Base
{
};
public class Derived2: Base
{
};
container.RegisterType<Base>(new InjectionProperty("Dependency", new ResolvedParameter<IDependency>()));
var d1 = container.Resolve<Derived1>();
Run Code Online (Sandbox Code Playgroud)
因此,我需要在解析派生类的同时向Unity 注册基类,以便为基类指定的所有注入都将应用于派生类.
DependencyAttribute由于我的项目限制,不允许装饰基类属性.
var container = new UnityContainer();
container
.RegisterType<IDependency, Dependency1>()
.RegisterTypes(
AllClasses
.FromAssemblies(Assembly.GetExecutingAssembly())
.Where(t => typeof(Base).IsAssignableFrom(t)),
getInjectionMembers: _ => new[] { new InjectionProperty("Dependency") });
var d1 = container.Resolve<Derived1>();
Run Code Online (Sandbox Code Playgroud)
注意:您需要支持按惯例注册的 Unity 3 .
| 归档时间: |
|
| 查看次数: |
2812 次 |
| 最近记录: |