public static void Main() { var accessCheck = new ResourceAccessValidator(new PublicResource()) .registerNext(new ResourceAccessValidator(new PrivateResource())); Console.WriteLine("I have access to public: {0}", accessCheck.IsAllowedToResource("public")); Console.WriteLine("I have access to private: {0}", accessCheck.IsAllowedToResource("private")); accessCheck = new ResourceAccessValidator(new PublicResource()) .registerNext(new ResourceAccessValidator(new PrivateResource(true))); Console.WriteLine("I have access to private: {0}", accessCheck.IsAllowedToResource("private")); }