技术开发 频道

Unity Application Block 1.0系列: 属性/设值方法注入(Property/Sett


【IT168技术文档】

  什么情况下使用Property (Setter) Injection

  当实例化父对象时也能自动实例化所依赖的对象
  通过简单的方式使得很容易做到在代码中查看每个类所依赖的项
  父对象有很多相互之间有关联关系的构造器,导致在调试和维护时很不方便。
  父对象包含有很多参数构造器,特别是参数类型相似的只能通过参数的位置来辨别的
  让用户(将调用这些代码的程序)更方便的看到有哪些对象可以用,这在Constructor Injection里是没办法实现的。
  通过修改依赖对象的代码来控制哪些对象可以被注入,而不用改动父对象或应用程序
//歌曲类 public class Song { //歌手 public string Singer { get { return "Westlife"; } } //歌曲名 public string Name { get { return "My Love"; } } } public abstract class Player { [Dependency] public Song Song { get; set; } public abstract string Name { get; } public void Play() { Console.WriteLine(string.Format("{0}: Now Playing [{1}] Singing by ({2})", this.Name, this.Song.Name, this.Song.Singer)); } } public class Mp3Player : Player { public override string Name { get { return "Mp3 Player"; } } } public class CDPlayer : Player { public override string Name { get { return "CD Player"; } } }
0
相关文章