Тот факт, что Enum является специализированным Int, вы можете использовать байты для каждого значения Enum (Apple = 1, Pear = 2, Orange = 4), а затем можете передавать Enums в Piped и определять, что делать, основываясь на значение байта (см. Reflection.BindingFlags и т. д.).