namespace Stary.Evo { public interface ICanGetUtility: IBelongToArchitecture { } public static class CanGetUtilityExtension { public static T GetUtility(this ICanGetUtility self) where T : class, IUtility { return self.GetArchitecture().GetUtility(); } } }