public void Add <T>() where T : IMiddleware, new() { T t = new T(); if (Last == null) { SetSuccessor(t); } else { Last.SetSuccessor(t); } Last = t; }