public void Stuff() { var createShipFactory = AspectWeaver.Of(() => new Ship()) .WeaveAspects( new AspectProvider(new DoStuffAspect(), new CrazyAspect()), t => t.Methods( s => s.LockOnTarget(null), s => s.RecieveMessage(null, false), s => s.FullStop()), t => t.Properties( s => s.Armor, s => s.Captain) ) .WeaveAspects( new AspectProvider(new CrazyAspect()), t => t.Properties( s => s.HullIntegrity ) ) .CreateFactory <IShip>(); Catalog.Services.Register(_ => createShipFactory()); var ship = Catalog.Factory.Resolve <IShip>(); }