public Info2Repository(Info2Repository obj) : this(obj.FileName) { }
static void Main(string[] args) { Info info = new Info("Info"); Info1Repository info1Repository = new Info1Repository("Info1Repository"); Info2Repository info2Repository = new Info2Repository("Info2Repository"); Info3Repository info3Repository = new Info3Repository("Info3Repository"); info1Repository.DoSmthFromInfoBaseRepository(info); info1Repository.DoSmthFromIInfoBaseRepositary(info); Console.WriteLine(); info2Repository.DoSmthFromInfoBaseRepository(info); info2Repository.DoSmthFromIInfoBaseRepositary(info); Console.WriteLine(); info3Repository.DoSmthFromInfoBaseRepository(info); info3Repository.DoSmthFromIInfoBaseRepositary(info); info3Repository.DoSmthFromIInfoSpecificRepositary(info); Console.WriteLine(); InfoBaseRepository infoBaseRepository; IInfoBaseRepositary iInfoBaseRepositary; IInfoSpecificRepositary iInfoSpecificRepositary; infoBaseRepository = info1Repository; if ((iInfoBaseRepositary = infoBaseRepository as IInfoBaseRepositary) != null) { iInfoBaseRepositary.DoSmthFromIInfoBaseRepositary(info); } if ((iInfoSpecificRepositary = infoBaseRepository as IInfoSpecificRepositary) != null) { iInfoSpecificRepositary.DoSmthFromIInfoSpecificRepositary(info); } Console.WriteLine(); infoBaseRepository = info2Repository; if ((iInfoBaseRepositary = infoBaseRepository as IInfoBaseRepositary) != null) { iInfoBaseRepositary.DoSmthFromIInfoBaseRepositary(info); } if ((iInfoSpecificRepositary = infoBaseRepository as IInfoSpecificRepositary) != null) { iInfoSpecificRepositary.DoSmthFromIInfoSpecificRepositary(info); } Console.WriteLine(); infoBaseRepository = info3Repository; if ((iInfoBaseRepositary = infoBaseRepository as IInfoBaseRepositary) != null) { iInfoBaseRepositary.DoSmthFromIInfoBaseRepositary(info); } if ((iInfoSpecificRepositary = infoBaseRepository as IInfoSpecificRepositary) != null) { iInfoSpecificRepositary.DoSmthFromIInfoSpecificRepositary(info); } Console.WriteLine(); Console.ReadLine(); }