Mini 容器学习笔记9——属性注入
属性注入的条件:
1. 属性必须是实例字段
2. 属性上必须贴有标签InjectAttribute或InjectManyAttribute
3. 属性必须有Setter访问器
4. 属性不能是索引属性
属性注入最佳原则
1. 当需要注入的属性的访问权限是私有时,应该把属性所属的类标记为密封类,具体原因请大家猜一猜。
2. 当类标记为密封类时,该类应该实现一个或多个契约接口(当如果需要对该类进行Aop拦截时,可以进行接口代理)
样例代码学习:
[TestFixture]
public class PropertyInjectionTest : TestBase
{
[Contract]
interface ISampleContract
{
void Test();
}
[Contract]
interface IPropertyContract
{
}
sealed class SampleComponent : ISampleContract
{
[Inject]
IPropertyContract property { get; set; }
public void Test()
{
Assert.IsNotNull(property);
}
}
class PropertyComponent : IPropertyContract { }
[Test]
public void Test()
{
ServiceRegistry
.Register<SampleComponent>()
.Register<PropertyComponent>();
var component = ServiceLocator.Get<ISampleContract>();
component.Test();
}
}
Mini 容器官方网站:
推荐资源:

浙公网安备 33010602011771号