//Adapter production usage which parses an NLog log level input and returns a custom enum private static CustomLogLevel GetCustomLevel(LogLevel input) { return input.ToString() .Pipe(str => Enum.Parse(typeof (SdLogLevel), str)) .Pipe(o => (CustomLogLevel) o); // OR: //return (CustomLogLevel) Enum.Parse(typeof(CustomLogLevel), input.ToString()); }