public static Mp3PlayerManager Create(Cassette cassette)
        {
            var concretType = typeof(Mp3PlayerManager).Assembly.GetTypes()
                              .Single(
                type =>
                typeof(Mp3PlayerManager).IsAssignableFrom(type) &&
                type.GetCustomAttribute(typeof(CassetteStateAttribute)) != null &&
                ((CassetteStateAttribute)type.GetCustomAttribute(typeof(CassetteStateAttribute))).State == cassette.State);

            var result = (Mp3PlayerManager)Activator.CreateInstance(concretType, cassette);

            return(result);
        }
예제 #2
0
 public Play(Cassette caset) : base(caset)
 {
 }
예제 #3
0
 public Pause(Cassette caset) : base(caset)
 {
 }
예제 #4
0
 protected Mp3PlayerManager(Cassette caset)
 {
     this.Cassette = caset;
 }